Servlet拦截器
1.LoginFilter
package main.java.filter;import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;public class LoginFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;HttpSession session = request.getSession();Object username = session.getAttribute("username");String path = request.getServletPath();String[] urls = {"/login","/json",".js",".css",".ico",".jpg",".png"};boolean flag = true;for (String url : urls) {if (path.contains(url) && !path.contains(".jsp")){flag = false;break;}else if (path.contains("login.jsp")){flag = false;break;}}if (flag) {if (username != null) {filterChain.doFilter(request, response);}else {response.sendRedirect("login.jsp");}}else{filterChain.doFilter(request, response);}}@Overridepublic void destroy() {}
}
2.web.xml配置
<filter><filter-name>LoginFilter</filter-name><filter-class>main.java.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>LoginFilter</filter-name><url-pattern>