如何加入过虑器

package com.filter;

import java.io.*;
import javax.servlet.*;

public class FistFilter implements Filter
{
 public void init(FilterConfig filterConfig) throws ServletException
  {
   System.out.println("过虑器初始化...");
  }
  public void doFilter(ServletRequest request,
                       ServletResponse response,
                       FilterChain chain)
                       throws java.io.IOException,ServletException
  {
   System.out.println("过虑器doFilter...");
  }
  public void destroy()
  {
   System.out.println("过虑器销毁...");
  }
         
}

/*
   <filter>
      <filter-name>first</filter-name>
      <filter-class>com.filter.FistFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>first</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
*/


1、过虑非法文字

package com.filter;

import java.io.*;
import javax.servlet.*;

public class CharFilter implements Filter
{
 public void init(FilterConfig filterConfig) throws ServletException
  {
   //System.out.println("过虑器初始化...");
  }
  public void doFilter(ServletRequest request,
                       ServletResponse response,
                       FilterChain chain)
                       throws java.io.IOException,ServletException
  {
     String content = request.getParameter("content");
     //如果indexOf返回-1,则没有查到所要的
     if(content != null)
     {
      if(content.indexOf("AAA") == -1)
      {
        chain.doFilter(request,response);
      }
      else
      {
       System.out.println("有非法文字");
       //如果需要,可以RequestDispacher进行跳转
      }
    }
    else
    {
     chain.doFilter(request,response);
    }
    
  }
  public void destroy()
  {
   //System.out.println("过虑器销毁...");
  }
         
}

/*
   <filter>
      <filter-name>char</filter-name>
      <filter-class>com.filter.CharFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>char</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
*/

2、过虑字符编码
package com.filter;

import java.io.*;
import javax.servlet.*;

public class EncodingFilter implements Filter
{
 public void init(FilterConfig filterConfig) throws ServletException
  {
   //System.out.println("过虑器初始化...");
  }
  public void doFilter(ServletRequest request,
                       ServletResponse response,
                       FilterChain chain)
                       throws java.io.IOException,ServletException
  {
   try
   {
      request.setCharacterEncoding("GB2312");
   }
   catch(Exception e)
   {
    
   }
   chain.doFilter(request,response);
  }
  public void destroy()
  {
   //System.out.println("过虑器销毁...");
  }
         
}

/*
   <filter>
      <filter-name>encoding</filter-name>
      <filter-class>com.filter.EncodingFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>encoding</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
*/

3、登陆验证
package com.filter;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginFilter implements Filter
{
 public void init(FilterConfig filterConfig) throws ServletException
  {
   //System.out.println("过虑器初始化...");
  }
  public void doFilter(ServletRequest request,
                       ServletResponse response,
                       FilterChain chain)
                       throws java.io.IOException,ServletException
  {
   //Session属于HTTP范围,所以ServletRequest对象需要先转换为HpptServletRequest对象
   HttpServletRequest req = (HttpServletRequest)request;
   HttpSession session = req.getSession();
   //如果Session不为空,则可以浏览其它页面
   if(session.getAttribute("uname") != null)
   {
    chain.doFilter(request,response);
   }
   else
   {
    //通过requestDispatcher跳转到登陆页
    request.getRequestDispatcher("login.jsp").forward(request,response);
   }
  }
  public void destroy()
  {
   //System.out.println("过虑器销毁...");
  }
         
}

/*
   <filter>
      <filter-name>login</filter-name>
      <filter-class>com.filter.LoginFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>login</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
*/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值