|
|
|
|
@ -1,14 +1,14 @@
|
|
|
|
|
package com.hua.filter;
|
|
|
|
|
package com.hua.filter; // 定义包名,存放自定义的过滤器类
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import javax.servlet.DispatcherType;
|
|
|
|
|
import javax.servlet.FilterChain;
|
|
|
|
|
import javax.servlet.ServletException;
|
|
|
|
|
import javax.servlet.annotation.WebFilter;
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.IOException; // 导入IOException,用于处理IO异常
|
|
|
|
|
import javax.servlet.DispatcherType; // 导入DispatcherType,用于定义过滤器的调度类型
|
|
|
|
|
import javax.servlet.FilterChain; // 导入FilterChain,用于调用过滤器链中的下一个过滤器
|
|
|
|
|
import javax.servlet.ServletException; // 导入ServletException,用于处理servlet异常
|
|
|
|
|
import javax.servlet.annotation.WebFilter; // 导入WebFilter注解,用于声明过滤器
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest,用于处理HTTP请求
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse,用于处理HTTP响应
|
|
|
|
|
|
|
|
|
|
import com.hua.entity.User;
|
|
|
|
|
import com.hua.entity.User; // 导入User实体类,用于获取用户信息
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 访问教务员用户下的所有页面的过滤器
|
|
|
|
|
@ -16,29 +16,29 @@ import com.hua.entity.User;
|
|
|
|
|
* @author hua
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@WebFilter(dispatcherTypes = {
|
|
|
|
|
DispatcherType.REQUEST,
|
|
|
|
|
DispatcherType.FORWARD,
|
|
|
|
|
DispatcherType.INCLUDE
|
|
|
|
|
}
|
|
|
|
|
, urlPatterns = { "/acdemic_dean/*" })
|
|
|
|
|
public class AcdemicDeanJspFilter extends HttpFilter {
|
|
|
|
|
@WebFilter(dispatcherTypes = { // 使用WebFilter注解定义过滤器,指定过滤器的调度类型
|
|
|
|
|
DispatcherType.REQUEST, // REQUEST类型,处理用户请求
|
|
|
|
|
DispatcherType.FORWARD, // FORWARD类型,处理请求转发
|
|
|
|
|
DispatcherType.INCLUDE // INCLUDE类型,处理请求包含
|
|
|
|
|
}
|
|
|
|
|
, urlPatterns = { "/acdemic_dean/*" }) // 指定过滤器的URL模式,匹配/acdemic_dean/路径下的请求
|
|
|
|
|
public class AcdemicDeanJspFilter extends HttpFilter { // 定义AcdemicDeanJspFilter类,继承自HttpFilter
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doFilter(HttpServletRequest request,
|
|
|
|
|
HttpServletResponse response, FilterChain filterChain)
|
|
|
|
|
public void doFilter(HttpServletRequest request, // 覆盖doFilter方法,处理请求
|
|
|
|
|
HttpServletResponse response, FilterChain filterChain)
|
|
|
|
|
throws IOException, ServletException {
|
|
|
|
|
User user = (User) request.getSession().getAttribute("user");
|
|
|
|
|
|
|
|
|
|
if(user == null){
|
|
|
|
|
String message = "账号已过期,请重新登录";
|
|
|
|
|
request.getSession().setAttribute("message", message);
|
|
|
|
|
//重定向回到登录页面
|
|
|
|
|
response.sendRedirect(request.getContextPath() + "/login/login.jsp");
|
|
|
|
|
User user = (User) request.getSession().getAttribute("user"); // 从session中获取user对象
|
|
|
|
|
|
|
|
|
|
if(user == null){ // 如果user对象为null,说明用户未登录或会话已过期
|
|
|
|
|
String message = "账号已过期,请重新登录"; // 设置提示信息
|
|
|
|
|
request.getSession().setAttribute("message", message); // 将提示信息放入session中
|
|
|
|
|
// 重定向回到登录页面
|
|
|
|
|
response.sendRedirect(request.getContextPath() + "/login/login.jsp"); // 获取上下文路径并重定向到登录页面
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
filterChain.doFilter(request, response);
|
|
|
|
|
|
|
|
|
|
filterChain.doFilter(request, response); // 如果用户已登录,继续执行过滤器链中的下一个过滤器
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|