81,094
社区成员
发帖
与我相关
我的任务
分享
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterchain)
throws ServletException, IOException {
// 不过滤的uri
String[] notFilter = new String[] { "login.jsp","login","plui","include",".css","testLoginServlet" };
// 请求的uri
String uri = request.getRequestURI();
// uri中包含plattutor3时才进行过滤
if (uri.indexOf("plattutor3") != -1) {
// 是否过滤
boolean doFilter = true;
for (String s : notFilter) {
if (uri.indexOf(s) != -1) {
// 如果uri中包含不过滤的uri,则不进行过滤
System.out.println("session filter 不过滤__________");
doFilter = false;
break;
}
}
if (doFilter) {
if(request.getSession(false)==null){
System.out.println("session已经过期");
response.sendRedirect("/plattutor3/tutor/test/login.jsp");
}else{
// 执行过滤
// 从session中获取登录者实体
Object obj= request.getSession(false).getAttribute("userInfo");
if (null == obj) {
System.out.println(request.getSession(false)+"session filter__________");
// 如果session中不存在登录者实体,则弹出框提示重新登录
// 设置request和response的字符集,防止乱码
// request.setCharacterEncoding("UTF-8");
//response.setCharacterEncoding("UTF-8");
//PrintWriter out = response.getWriter();
String loginPage = "/plattutor3/tutor/test/login.jsp";
response.sendRedirect(loginPage);
request.getRequestDispatcher(loginPage).forward(request, response);
} else {
// 如果session中存在登录者实体,则继续
filterchain.doFilter(request, response);
}
}
} else {
// 如果不执行过滤,则继续
filterchain.doFilter(request, response);
}
} else {
// 如果uri中不包含background,则继续
filterchain.doFilter(request, response);
}
}