`

Servlet过滤器的实例

    博客分类:
  • web
 
阅读更多

下面是JavaWeb工程中的web.xml配置

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<filter>
		<filter-name>EncodingFilter</filter-name>
		<filter-class>com.jadyer.Filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>EncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

 下面是用于设定表单传输参数编码的过滤器CharacterEncodingFilter.java

 

package com.jadyer.Filter;

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;

/**
 * 设定传输参数编码
 */
public class CharacterEncodingFilter implements Filter {
	private String encoding = "ISO8859_1";

	/**
	 * 当过滤器对象被销毁的时候,由Web容器调用该方法
	 * @see 该方法主要用来释放过滤器对象所占用的资源
	 */
	public void destroy() {}
	
	/**
	 * 由Web容器在刚生成过滤器对象的时候进行调用,主要用来完成对过滤器的初始化工作
	 * @see 该方法接收一个FilterConfig类型的参数,通过该参数以获得有关当前过滤器的信息
	 * @see 例如:调用FilterConfig的getFilterName()方法可以获得过滤器的名字
	 * @see 例如:调用getServletContext()方法可以获得当前的ServletContext对象
	 * @see 这里主要是用来读取web.xml中设定的<param-name>encoding</param-name>的值
	 */
	public void init(FilterConfig config) throws ServletException {
		encoding = config.getInitParameter("encoding");
	}

	/**
	 * doFilter()方法是Filter接口中最核心的方法,完成过滤器的过滤功能
	 * @see FilterChain类型的对象是保存多个过滤器执行顺序的对象
	 * @see 一个Web应用中可以有多个过滤器,这些过滤器就像珠子被线串在了一起
	 * @see 调用时,是一个接着一个进行调用的,调用顺序是按照过滤器在web.xml中声明的先后顺序
	 * @see 通过调用FilterChain对象的doFilter()方法,可以调用下一个过滤器的doFilter()方法
	 * @see 如果下一个过滤器是最后一个,则调用客户端所请求的Servlet、JSP或者其它文件
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding(encoding); //设定表单参数编码方式
		chain.doFilter(request, response);
	}
}

 字符过滤器:

CharFilter.java

 

package servlet;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharFilter implements Filter {

	public void destroy() {

		System.out.println("aaaaaaaaaa");
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		String content = request.getParameter("text");
		if (content != null) {
			if (content.indexOf("AAA") == -1) {
				chain.doFilter(request, response);
			} else {
				System.out.println("有非法文字");
			}
		} else {
			chain.doFilter(request, response);
		}

	}

	public void init(FilterConfig filterConfig) throws ServletException {
		String charset = filterConfig.getInitParameter("charset");
		System.out.println(charset);
		Enumeration<String> servletName = filterConfig.getInitParameterNames();
		while (servletName.hasMoreElements()) {
			String object = (String) servletName.nextElement();
			System.out.println(object + "="
					+ filterConfig.getInitParameter(object));

		}

	}

}

 web.xml配置

 

<filter>
		<filter-name>char</filter-name>
		<filter-class>servlet.CharFilter</filter-class>
		<init-param>
			<param-name>charset</param-name>
			<param-value>gbk</param-value>
		</init-param>
		<init-param>
			<param-name>it</param-name>
			<param-value>hope</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>char</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

 

 

 

分享到:
评论

相关推荐

    servlet过滤器实例经典过滤器

    servlet过滤器实例经典过滤器,手把手交你配置过滤器,五大常用过滤器源码,走过路过的同事们注意了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    servlet过滤器实例代码

    servlet过滤器实例代码,需要的来下载

    Servlet过滤器使用

    这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain)...

    5个Servlet过滤器实例源码(JSP)

    Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限

    Servlet过滤器小实例

    比较好也比较常见的方法是用专门的servlet过滤器进行过滤。java中有个Filter类专门从事这类工作,下面以一个简单的实例进行演示: 实例说明:假设有一个web应用软件,如果是正常途径登录,我们会在其session中放入...

    servlet过滤器技术实例,

    servlet,filter,过滤器技术servlet,filter,过滤器技术

    servlet过滤器配置及运行过程.doc

    servlet过滤器配置及运行过程,servlet实例用法。

    Servlet过滤器

    Servlet过滤器的原理,以及具体使用方法,具体实例

    过滤器例子下载实例

    servlet的过滤器,完成必须登录,才能访问资源,简单易懂

    JSP使用Servlet过滤器进行身份验证的方法

    主要介绍了JSP使用Servlet过滤器进行身份验证的方法,结合实例形式分析了Servlet过滤器的实现方法及jsp身份验证的具体使用技巧,需要的朋友可以参考下

    jsp filter 过滤器功能与简单用法示例

    本文实例讲述了jsp filter 过滤器功能与简单用法。分享给大家供大家参考,具体如下: 过滤器的作用是什么? 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 可以将一个或多个过滤器附加到...

    用servlet写的简单的登录注册没写过滤器

    我刚刚学java的时候到处找登录注册的例子都找不到,现在懂了写个实例分享给大家吧!

    JavaWeb实现网上商城:JSP+Servlet+Dao

    MVC:Model View Controller ...Servlet过滤器(filter):能够在一个Request到达servlet之前预处理request,也可以在离开servlet时处理response Servlet监听器:给web中的各种操作绑定事件,并对事件进行处理

    J2EE应用开发_servlet

    Servlet介绍 Servlet常用的接口 Servlet的配置 Servlet过滤器 Servlet容器安全和身份验证 Servlet图像处理 Servlet应用实例——投票模块

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    Servlet对Cookie和Session的管理源码实例

    Servlet对Cookie和Session的管理:会话跟踪、会话浏览、过滤器、事件监听、以及不依赖浏览器的后台跟踪和浏览源码。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    JavaWeb13-过滤器与监听器.rar

    JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细......资源内容如下: JavaWeb02-request与response.rar JavaWeb03-会话跟踪cookie与...JavaWeb13-过滤器与监听器.rar

Global site tag (gtag.js) - Google Analytics