1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| @WebFilter(filterName = "loginFilter", urlPatterns = "/*", initParams = { @WebInitParam(name = "loginUI", value = "/home/loginUI"), @WebInitParam(name = "loginProcess", value = "home/login"), @WebInitParam(name = "encoding", value = "utf-8") }) public class LoginFilter implements Filter { private FilterConfig config;
@Override public void init(FilterConfig config) throws ServletException { this.config = config; }
@Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { String loginUI = config.getInitParameter("loginUI"); String loginProcess = config.getInitParameter("loginProcess"); String encoding = config.getInitParameter("encoding");
HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res;
request.setCharacterEncoding(encoding);
String uri = request.getRequestURI(); if (uri.contains(loginUI) || uri.contains(loginProcess)) { chain.doFilter(request, response); } else { if (request.getSession().getAttribute("user") == null) { response.sendRedirect(request.getContextPath() + loginUI); } else { chain.doFilter(request, response); } } }
@Override public void destroy() { this.config = null; } }
|