DRP-filter基础
来源:互联网 发布:网络视频配音 编辑:程序博客网 时间:2024/05/29 10:43
功能介绍
filter简单来说可以改变用户操作界面请求的数据或界面返回的数据。改变Servlet的request和response。
大家可以可以看一下图可能就更能明白了。
说明:
1. 在servlet被调用之前截获;
2. 在servlet被调用之前检查servlet request;
3. 根据需要修改request头和request数据;
4. 根据需要修改response头和response数据;
5. 在servlet被调用之后截获.
实际应用
就拿大家经常遇到的一个问题,就是如果我们不设置编码格式的时候往往输入汉字存入到数据库会是乱码的格
式,所以我们经常设置编码格式在JSP调用添加,修改等操作时。所以我们就利用Filter过滤器,在调用JSP之
前先设置一下编码格式对所有的JSP页面起作用。
1.建立一个java类实现javax.servlet.Filter
package com.bjpowernode.drp.util.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;/** * 功能: 采用Filter统一处理字符集 * 作者: 宋笑 * 日期: 2015-10-22 下午06:32:06 * */public class CharsetEncodingFilter implements Filter {//定义一个变量存入编码格式private String endcoding;//销毁@Overridepublic void destroy() {}//修改request,response操作,把编码格式改为GBK@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {//开始进入Filter------设置字符集request.setCharacterEncoding(endcoding);//设置继续往JSP中走------结束filterchain.doFilter(request, response);}//用来读取配置文件中设置的参数@Overridepublic void init(FilterConfig filterConfig) throws ServletException {//获取web.xml里面配置的字符集格式参数this.endcoding = filterConfig.getInitParameter("encoding");}}2.配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><filter><!-- 设置filter的类名 --><filter-name>CharsetEncodingFilter</filter-name> <!-- 设置filter的包名 --> <filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class><!-- 设置filter里面的参数 用CharsetEncodingFilter类里面的init方法取--><init-param><param-name>encoding</param-name><param-value>GBK</param-value></init-param></filter><!-- 配置filter对哪些Servlet或jsp起作用 --><filter-mapping><filter-name>CharsetEncodingFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping></web-app>
其中。配置filter对哪些Servlet或JSP起作用(url-pattern)有好多种方式。
(1)精确匹配,不用任何修饰符,如:<filter-mapping><filter-name>CharsetEncodingFilter</filter-name><url-pattern>/user_maint.jsp</url-pattern></filter-mapping> 这样就可以精确到哪个jsp上。
(2)扩展匹配,由星号“*”和扩展名组成,如:
<filter-mapping><filter-name>CharsetEncodingFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping>对所有的以jsp为后缀的起作用。(3)路径前缀匹配,包含一个目录和一个/*
<filter-mapping><filter-name>CharsetEncodingFilter</filter-name><url-pattern>/sysmgr/*</url-pattern></filter-mapping>对sysmg这个文件夹下的jsp起作用。
(4)全部匹配,一般使用/*
<filter-mapping><filter-name>CharsetEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>对所有的都匹配。
结束语
Filter也是一种面向切面编程,降低了与业务之间的耦合性,主要用于解决中文乱码,用户权限验证等等问题。。还有待研究。
2 0
- DRP-filter基础
- DRP-filter基础
- 【DRP】JavaWeb-Filter(过滤器)
- DRP项目(九)----Filter原理
- DRP中用到的几个filter
- DRP学习之路--Filter生命周期
- 【DRP】拦截器Filter的使用
- DRP之JavaScript基础整理
- DRP
- drp
- DRP
- DRP
- DRP
- DRP学习之路--Filter实现设置字符集
- 【DRP分销】---java基础开发框架由来
- Filter基础
- Filter基础
- 切面性服务——DRP项目中Filter的应用
- 虚拟机检测技术剖析
- 黑马程序员—Java基础—File类
- Java进阶思考
- Android应用如何支持屏幕多尺寸多分辨率问题
- AJAX读取日期
- DRP-filter基础
- Java生产者与消费者模型
- 缺少 .BLL文件解决方案
- java.io.Serializable
- Swing
- 计算机技术领域当前的主流技术及其社会需求调查报告
- SVN_Eroor:URL access forbidden for unknown reason svn: access to&n
- KVO
- 2张图教你认识世界人口分布