过滤器的写法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 06:03   11   0
package com.jykj.comutils;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginFilter implements Filter{

 @Override
 public void destroy() {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain)
   throws IOException, ServletException {
  // TODO Auto-generated method stub
  HttpServletRequest request = (HttpServletRequest)servletrequest;
  HttpServletResponse response = (HttpServletResponse)servletresponse;
  String requestURI = request.getRequestURI();
  String contextPath = request.getContextPath();
  //去除项目名时访问的当前路径
  String url = requestURI.substring(contextPath.length());
  HttpSession session = request.getSession(false);
  if (url.indexOf("index.jsp")>0||url.equals("/")||url.indexOf("image.html")>0||url.indexOf("notice.jsp")>0||url.indexOf("educational.jsp")>0) {//登陆页面放过
   filterchain.doFilter(request, response);
  }else {//不是登陆页面,进行判定session
   if (session==null||session.getAttribute("user")==null) {
    response.sendRedirect("/");
   }else {
    filterchain.doFilter(request,response);
    return;
   }
  }
 }

 @Override
 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub
  
 }

}

web.xml配置

<filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>com.jykj.comutils.LoginFilter</filter-class>
  </filter>
 
  <filter-mapping>
    <filter-name>LoginFilter</filter-name>
    <url-pattern>*.htm</url-pattern>
  </filter-mapping>

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP