adminfilter.java

来自「一本jsp自学教材」· Java 代码 · 共 62 行

JAVA
62
字号
package test;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;
import java.util.Date;

public class AdminFilter implements Filter
 {
   private FilterConfig filterConfig = null;
   private String adminIP="";
   private String Log_Page="login.jsp";
   public void init(FilterConfig filterConfig) throws ServletException
    {
	this.filterConfig = filterConfig;
        //获取初始化参数
        this.adminIP = filterConfig.getInitParameter("adminIP");
    }   
    public void doFilter(ServletRequest request, 
                         ServletResponse response,
                         FilterChain chain)
	throws IOException, ServletException 
    {
         HttpServletRequest req=(HttpServletRequest)request;
         HttpServletResponse res=(HttpServletResponse)response;
         HttpSession session=req.getSession();
         Date date=new Date();
         String datetime=date.toLocaleString();
         String ip=req.getRemoteAddr();
         String type="";
         if(session.getAttribute("AdminType")!=null)         
         type=(String)session.getAttribute("AdminType");
         if(ip.equals(adminIP)&&type.equals("admin"))
           {
              //向日志文件写入访问信息
	     filterConfig.getServletContext().log
	        (datetime+ "用户访问的URL: "+req.getRequestURL()+"--IP:"+ip);
             //通过,继续处理。         
             chain.doFilter(request,response);
           }
        else
           {
             filterConfig.getServletContext().log
	        (datetime+ "用户访问的URL失败: "+req.getRequestURL()+"--IP:"+ip);
             res.sendRedirect(Log_Page);
           }     	
     }
    public void destroy() 
    {
        this.adminIP = null;
        this.Log_Page = null;
        this.filterConfig = null;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?