package com.vip.saturn.job.console.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; /** * Record the last url visited. * * * @author linzhaoming * */ public class RecordLastVisit implements Filter { private static final String GET_METHOD = "get"; public static final String LAST_VISIT_URL = "last_vist_url"; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String currentURL = request.getRequestURI(); String method = request.getMethod(); if ( StringUtils.isNotEmpty(currentURL) && currentURL.indexOf(".js") < 0 && currentURL.indexOf(".css") < 0 && GET_METHOD.equalsIgnoreCase(method)) { if (currentURL.indexOf("job_detail") >= 0 || currentURL.indexOf("server_detail") >= 0 || currentURL.indexOf("registry_center_page") >= 0 || currentURL.indexOf("dashboard") >= 0 || currentURL.indexOf("overview") >= 0 ) { request.setCharacterEncoding("UTF-8"); String queryString = request.getQueryString(); if (StringUtils.isNotEmpty(queryString)) { currentURL += "?" + queryString; } request.getSession().setAttribute(LAST_VISIT_URL, currentURL); } } if (chain != null) { chain.doFilter(request, response); } } @Override public void destroy() { } }