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 {
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public 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);
}
}
@Override
public 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>