• JavaWeb 之 Filter 验证用户登录案例


    需求:

    1、 访问一个网站的资源。验证其是否登录
    2、 如果登录了,则直接放行。
    3、 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。

    代码实现:

     1 import javax.servlet.*;
     2 import javax.servlet.annotation.WebFilter;
     3 import javax.servlet.http.HttpServletRequest;
     4 import java.io.IOException;
     5 
     6 @WebFilter("/*") // 拦截所有的访问
     7 public class LoginFilter implements Filter {
     8     public void destroy() {
     9     }
    10 
    11     public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
    12         // 强转为HttpServletRequest 对象
    13 
    14         HttpServletRequest request = (HttpServletRequest) req;
    15         // 1 .获取资源请求路径
    16         String uri = request.getRequestURI();
    17 
    18         // 2 判断是否包含登录相关资源路径
    19         // login.jsp,要排除图片,验证码等资源
    20         if(uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet")) {
    21             // 包含,用户想登录,放行与登录相关的资源
    22             chain.doFilter(req, resp);
    23         } else {
    24             // 不包含,验证用户是否登录
    25             // 3 从session 中获取 user
    26             Object user = request.getSession().getAttribute("user");
    27 
    28             if(user != null) {
    29                 // 登录成功,放行
    30                 chain.doFilter(req,resp);
    31             } else {
    32                 request.setAttribute("login_msg","尚未登录,请登录");
    33                 request.getRequestDispatcher("/login.jsp").forward(request,resp);
    34             }
    35         }
    36 
    37 
    38     }
    39 
    40     public void init(FilterConfig config) throws ServletException {
    41 
    42     }
    43 
    44 }
  • 相关阅读:
    hdu 4396(spfs/二维最短路)
    hdu 4360(最短路变形)
    hdu 3501(欧拉函数的应用)
    bnu 4359(数位dp)
    用Hermite插值方法估计积分值
    虞旦盛老师 的《数学分析续》课件
    数值积分中的梯形法则
    数值积分中的梯形法则
    辛普森三八律
    利用自然数的标准分解证明可数集合的所有有限子集形成的集合是可数集
  • 原文地址:https://www.cnblogs.com/niujifei/p/11628048.html
Copyright © 2020-2023  润新知