【DRP】Filter拦截器-应用

【用法】

1、建立配置文件:

 1 package com.bjpowernode.drp.util.filter;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11
12 /**
13  * 采用Filter统一处理字符集
14  * @author yin
15  *
16  */
17 public class CharsetEncodingFilter implements Filter {
18
19     @Override
20     public void destroy() {
21
22     }
23
24     @Override
25     public void doFilter(ServletRequest request, ServletResponse response,
26             FilterChain chain) throws IOException, ServletException {
27
28         //设置字符集
29         request.setCharacterEncoding("GB18030");
30         //继续执行
31         chain.doFilter(request, response);
32     }
33
34     @Override
35     public void init(FilterConfig arg0) throws ServletException {
36
37
38     }
39
40 }

2、配置web.XML配置文件

 1 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 4     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 5
 6 <!--     文件名和文件相对路径 -->
 7  <filter>
 8     <filter-name>CharsetEncodingFilter</filter-name>
 9     <filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class>
10 </filter>
11
12 <!-- 文件名和拦截的页面 -->
13 <filter-mapping>
14     <filter-name>CharsetEncodingFilter</filter-name>
15     <url-pattern>*.jsp</url-pattern>
16 </filter-mapping>
17
18 </web-app>  

【改进】-字符集通过读取XML文件取得

web.XML文件:

 1 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 4     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 5
 6 <!--     文件名和文件相对路径 -->
 7  <filter>
 8     <filter-name>CharsetEncodingFilter</filter-name>
 9     <filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class>
10     <init-param>
11         <param-name>encoding</param-name>
12         <param-value>GBK</param-value>
13     </init-param>
14 </filter>
15
16 <!-- 文件名和拦截的页面 -->
17 <filter-mapping>
18     <filter-name>CharsetEncodingFilter</filter-name>
19     <url-pattern>*.jsp</url-pattern>
20 </filter-mapping>
21
22 </web-app>  

Filter 文件

 1 package com.bjpowernode.drp.util.filter;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11
12 /**
13  * 采用Filter统一处理字符集
14  * @author yin
15  *
16  */
17 public class CharsetEncodingFilter implements Filter {
18
19     private String endcoding;
20     @Override
21     public void destroy() {
22
23     }
24
25     @Override
26     public void doFilter(ServletRequest request, ServletResponse response,
27             FilterChain chain) throws IOException, ServletException {
28
29         //设置字符集
30         request.setCharacterEncoding(endcoding);
31         //继续执行
32         chain.doFilter(request, response);
33     }
34
35     //初始化方法
36     @Override
37     public void init(FilterConfig filterConfig) throws ServletException {
38          //读取web.xml文件中 字符集的值
39         this.endcoding = filterConfig.getInitParameter("encoding");
40         System.out.println(endcoding);
41
42     }
43
44 }

request.getParameter() 和request.getAttribute() 区别

JavaWeb过滤器Filter

javaweb学习总结(四十二)——Filter(过滤器)学习

总结:不断提高自己的编码效率!

时间: 2024-10-18 10:52:03

【DRP】Filter拦截器-应用的相关文章

Jsp的filter拦截器实现用户权限分级

看了一下上学期学的项目,发现用到了jsp的filter来实现不同用户登录网站访问模块的分类,现在把代码分享出来跟大家共享一下··· package com.wws.filter; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.servlet.Filter; import javax.

spring filter拦截器

实现的功能:判断用户是否已登录,未登录用户禁止访问任何页面或action,自动跳转到登录页面.比较好的做法是不管什么人都不能直接访问jsp页面,要访问就通过action,这样就变成了一个实实在在的权限控制了.那么就有3种方法可以解决楼主的问题1,直接使用filter2,直接使用webwork的interceptor,3,将action交给spring管理,使用spring的Aop机制 让用户可以直接访问jsp本来就违反了mvc的本意了1 直接使用filterweb.xml配置 <filter>

Filter拦截器

Filter执行顺序: GZipFilter应用: web.xml配置 <filter> <filter-name>GzipFilter</filter-name> <filter-class>com.citi.icg.portal.compositepageservice.server.filter.GzipFilter</filter-class> <init-param> <param-name>mimeTypes&

SpringBoot------自定义拦截器

1.添加pom.xml使用的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&g

过滤器(Filter)和拦截器(Interceptor)

之前总是弄混这两者,今天看了几篇文章,小结一下在这里. Filter介绍 Filter可以认为是Servlet的一种"加强版",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应.使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行预处理并生成响应,最后Filter再对服务

SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系

一 简介 (1)过滤器: 依赖于servlet容器.在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次.使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码:在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字.危险字符等 关于过滤器的一些用法可以参考我写过的这些文章: 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletReque

基于SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系

一 简介 (1)过滤器: 依赖于servlet容器.在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次.使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码:在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字.危险字符等 关于过滤器的一些用法可以参考我写过的这些文章: 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletReque

Java Filter(拦截器)

多个Filter按照在配置文件中配置的filter顺序执行. 在web.xml文件中配置该Filter,使用init-param元素为该Filter配置参数,init-param可接受如下两个子元素: param-name:指定参数名. param-value:指定参数值. filter .filter-mapping .servlet.servlet-mapping 才构成一个完整的拦截器配置. Filter类需要实现Filter接口,该接口有init.doFilter.destroy3个方法

filter 和 struts 拦截器的区别

观点1: 比较一,filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于java本身的反射机制,这是两者最本质的区别. 比较二,filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法.而interceptor与servlet容器无关. 比较三,Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,