简单过滤器

  • Post author:
  • Post category:其他


过滤器

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”该页面,如果失败,则不存入数据并且跳转回登录页面。



版权声明:本文为melody875649004原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。