登录验证码分析、 登录验证代码实现
登录验证码分析
需求:
1.访问day17_case案例的资源。验证其是否登录
3。如果登录了,则直接放行。
4.如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。
登录验证代码实现
案例:
@WebServlet("/*")
public class LoginFiler implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 强制转换
HttpServletRequest request1 = (HttpServletRequest) request;
// 获取i请求路径
String uri = request1.getRequestURI();
// 判断是否包含登录相关路径
if (uri.contains("/login.jsp")||uri.contains("/loginServlet")){
// 包含就是登录 放行
chain.doFilter(request,response);
}else {
// 如果不是,需要验证是不是登录的
Object user = request1.getSession().getAttribute("user");
if (user!=null){
// 登录了,放行
chain.doFilter(request,response);
}else {
// 如果没有登录就跳转
request1.setAttribute("login.jsp","您没有登录先登录");
request1.getRequestDispatcher("/login.jsp").forward(request,response);
}
}
}
public void destroy() {
}
}