+ class LinkServlet extends HttpServlet {
+ private static final long serialVersionUID = 3749990143146845708L;
+
+ @Override
+ protected void service(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException,
+ IOException {
+ String path = request.getPathInfo();
+ String userAgent = request.getHeader("User-Agent").toLowerCase();
+ boolean isBot = false;
+ boolean isCompatibleBrowser = false;
+ if (userAgent.contains("bot")) {
+ isBot = true;
+ } else if (userAgent.contains("webkit")
+ || userAgent.contains("gecko")
+ || userAgent.contains("firefox")
+ || userAgent.contains("msie")
+ || userAgent.contains("chrome")
+ || userAgent.contains("chromium")
+ || userAgent.contains("opera")
+ || userAgent.contains("browser")) {
+ isCompatibleBrowser = true;
+ }
+
+ if (isCompatibleBrowser) {// redirect
+ response.setHeader("Location", "/#" + path);
+ response.setStatus(HttpServletResponse.SC_FOUND);
+ } else {
+ if (isBot && log.isDebugEnabled())
+ log.debug(request.getHeader("User-Agent") + " is a bot");
+ // TODO pure html
+ throw new UnsupportedOperationException();
+ }
+ }
+ }
+