简单过滤器

过滤器
 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");

        chain.doFilter(req, resp);
        HttpServletRequest request=(HttpServletRequest)req;
        HttpSession session = request.getSession();
        Object userName = session.getAttribute("userName");
        System.out.println("filter:"+userName);
        if (userName!=null){
            req.getRequestDispatcher("success.jsp").forward(req,resp);
        }else {
            req.getRequestDispatcher("index.jsp").forward(req,resp);
        }

    }

当向servlet发送请求时,会输出一次"filter:"+userName,并且当servlet发送响应时,回再输出一次。
除此之外,作用域中是否存放值与代码顺序没关系
当 chain.doFilter(req, resp);执行,即代表放行之后,之后的代码与servlet同步执行,则如果后台作用域存入了"userName"的值,那么这里就能获取到
也就可以进行跳转。
但是后台仍旧需要去获取数据来判断用户名和密码是否正确,如果正确存入username的用户名,那么session作用域一直存储直到作用域消失或者删除,即将该用户名缓存,下次登陆不需验证

这也是登录页面的验证,如果用户名与密码匹配,则存入数据,并且成功跳转"success.jsp"该页面,如果失败,则不存入数据并且跳转回登录页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值