登录验证案例
需求:
1. 访问day4_case案例的资源。验证其是否登录
3. 如果登录了,则直接放行。
4. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。
代码实现:
LoginFilter:
/** * 登陆验证的过滤器 */ @WebFilter("/*") public class LoginFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { //强制转换 HttpServletRequest request = (HttpServletRequest) req; //1、获取资源请求路径 String uri = request.getRequestURI(); //2、判断是否包含登陆相关的资源,要注意排除掉css/js/图片/验证码等资源 if (uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet")){ //包含,用户就是想登陆,放行 chain.doFilter(req, resp); }else { //不包含,需要验证用户是否登录 //3、从session中获取user Object user = request.getSession().getAttribute("user"); if (user!=null){ //登录了,放行 chain.doFilter(req, resp); }else { //没有登录,跳转登陆页面 request.setAttribute("login_msg","您尚未登陆,请登录"); request.getRequestDispatcher("/login.jsp").forward(request,resp); } } } public void init(FilterConfig config) throws ServletException { } public void destroy() { } }
标签:req,登录,验证,resp,contains,request,uri,Filter From: https://www.cnblogs.com/qihaokuan/p/17073202.html