第一步:编写登录页面(设置session作用域属性值)、登录成功页面;
<%--
Created by IntelliJ IDEA.
User: wzh
Date: 2021/5/23
Time: 9:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
请求登录
<%
session.setAttribute("user","user");
%>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: wzh
Date: 2021/5/23
Time: 9:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登陆成功
</body>
</html>
2.第二步:编写编码拦截器、登录拦截器
package com.cy.filter;
import javax.servlet.*;
import java.io.IOException;
/**
* 编码过滤器
*/
public class EncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("编码过滤器的初始化");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("编码过滤器的处理逻辑");
//设置编码
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("gbk");
//继续访问指定路径
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("编码过滤器执行完成");
}
@Override
public void destroy() {
System.out.println("编码过滤器被销毁");
}
}
package com.cy.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/**
* 登录拦截器
*/
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("登录过滤器初始化");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("登录过滤器处理");
//获取Session对象
HttpSession session = ((HttpServletRequest) servletRequest).getSession();
//判断session是否为空
if (session.getAttribute("user")==null){
//如果为空重定向到登录额面
((HttpServletResponse)servletResponse).sendRedirect("login.jsp");
}else{
((HttpServletResponse)servletResponse).sendRedirect("success.jsp");
}
System.out.println("登录过滤器处理完成");
}
@Override
public void destroy() {
System.out.println("登录过滤器被销毁");
}
}