用filter实现登陆验证
在点击有些资源时你需要先登录
点击查看代码
package servlet.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@WebFilter("/*")
public class FilterDemo2 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
String requestURI = req.getRequestURI();
//注意以后还要排除css/js/验证码等资源
if(requestURI.contains("/login.jsp")||requestURI.contains("/loginServlet")){
filterChain.doFilter(servletRequest,servletResponse);
}else {
Object user = req.getSession().getAttribute("user");
if(user!=null){
filterChain.doFilter(servletRequest,servletResponse);
}else {
req.setAttribute("login_msg","请先登录");
req.getRequestDispatcher("/login.jsp").forward(req,servletResponse);
}
}
}
@Override
public void destroy() {
}
}