`
Mr_Chunlei
  • 浏览: 29799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

配置filter,修改response

 
阅读更多

在java中增加了过滤器filter,一般我们定义的filter都要继承filter接口从而实现dofilter方法,filter的配置,我们可以在web.xml中进行配置,配置如下:

<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.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>
	<filter>
		<filter-name>proxyFilter</filter-name>
		<filter-class>com.filter.ProxyFilter</filter-class>
		<init-param>
			<param-name>configFile</param-name>
			<param-value>/config.json</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>proxyFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

当我们想在程序中使用filter的param时,可以通过filterConfig.getInitParameter("configFile")的形式来获得配置数据,在dofilter中,我们希望改变httpServletRequest的封装的属性就需要用到装饰类 HttpServletRequestWrapper,想改变request的那个方法就要用继承该wrapper类然后重写servletRequest的那个方法。使用httpServletResponse对象来初始化我们想要的对象。例如想修改request的getPathInfo,实现如下:

public class HttpProxyRouterRequest extends HttpServletRequestWrapper {

	public String _pathInfo = null;

	public HttpProxyRouterRequest(HttpServletRequest request) {
		super(request);
		// TODO Auto-generated constructor stub
	}
	@Override
    public String getPathInfo() {
		if ( this._pathInfo == null ){
			_pathInfo = super.getPathInfo();
			if(_pathInfo == null){
				_pathInfo = HttpUtils.getPathInfo(getRequestURI(), getContextPath());
			}
		}
		return this._pathInfo;
    }



分享到:
评论

相关推荐

    filter 修改jsp servlet response返回的内容

    2. **配置Filter**: 在`web.xml`配置文件中,你需要定义`&lt;filter&gt;`和`&lt;filter-mapping&gt;`元素,指定过滤器的类名以及它应该拦截的URL模式。例如,如果要拦截所有JSP页面,可以设置URL模式为 "*.jsp"。 3. **Filter...

    Filter过滤器的代码及其web.xml配置代码

    3. 配置Filter:接下来,我们需要在`web.xml`配置文件中声明并配置Filter。在这里,我们指定Filter的类名、初始化参数以及Filter映射规则。 ```xml &lt;filter&gt; &lt;filter-name&gt;myFilter&lt;/filter-name&gt; &lt;filter-...

    java中filter的用法(过滤器)

    #### 四、配置Filter Filter需要在web.xml文件中进行配置,配置主要包括Filter的类名、初始化参数以及拦截的URL模式。 ```xml &lt;filter&gt; &lt;filter-name&gt;ForceNoCacheFilter&lt;/filter-name&gt; &lt;filter-class&gt;...

    java 中如何使用filter过滤器

    配置Filter 在web应用的`web.xml`配置文件中,我们定义Filter并指定其作用范围: ```xml &lt;filter&gt; &lt;filter-name&gt;myFilter&lt;/filter-name&gt; &lt;filter-class&gt;com.example.MyFilter&lt;/filter-class&gt; &lt;/filter&gt; ...

    Java-filter测试程序

    3. **配置Filter**:在`web.xml`文件中,我们可以通过`&lt;filter&gt;`和`&lt;filter-mapping&gt;`元素定义Filter,并指定其需要拦截的URL模式。 ```xml &lt;filter&gt; &lt;filter-name&gt;MyFilter&lt;/filter-name&gt; &lt;filter-class&gt;...

    Filter(过滤器)简介和工作原理

    1. **配置Filter**: 在web.xml文件中配置Filter,指定Filter的类名、URL模式以及初始化参数。 2. **初始化Filter**: 应用服务器启动时,会根据web.xml中的配置创建Filter实例并调用`init()`方法进行初始化。 3. **...

    Filter在MyEclipse中的创建方法

    2. **配置Filter**:在接下来的界面中,为Filter选择一个实现类,并实现Filter接口中的三个方法:`doFilter()`, `init()`, 和 `destroy()`。`doFilter()`方法是核心,它会在每次请求经过时被调用。`init()`方法在...

    Java Filter相关资料

    - 在web.xml中,可以通过`&lt;filter&gt;`和`&lt;filter-mapping&gt;`元素来配置Filter。多个Filter可以形成一个链,按照声明的顺序依次执行。 - `@WebFilter`注解也可以用于Java EE 6及更高版本的Filter配置,提供更灵活的...

    Java_Filter过滤机制详解.doc

    在`web.xml`文件中配置Filter,主要包括两部分: 1. **Filter定义**:定义Filter的名称和实现类。 ```xml &lt;filter&gt; &lt;filter-name&gt;myFilter&lt;/filter-name&gt; &lt;filter-class&gt;com.example.MyFilter&lt;/filter-class&gt; ...

    利用Filter拦截用户登录

    3. **配置Filter**:在`web.xml`文件中,我们需要配置Filter,指定它应该拦截哪些URL模式。例如,我们可以设置Filter拦截所有以"/protected/*"开头的URL。 ```xml &lt;filter&gt; &lt;filter-name&gt;LoginFilter&lt;/filter-name...

    J2EE之filter的应用

    50. }51.}52.53.2、在 web.xml 文件中配置 Filter54.&lt;filter&gt;55. &lt;filter-name&gt;EncodeFilter&lt;/filter-name&gt;56. &lt;filter-class&gt;...

    Filter简介和工作原理

    如果Filter选择不继续处理,可以直接修改响应并返回给客户端,或者使用`RequestDispatcher`或`HttpServletResponse`的方法进行转发或重定向。 **Filter的应用场景** - **安全控制**:例如进行用户登录检查,只有...

    filter 简单小例子,入门例子

    2. **配置Filter**:在`web.xml`文件中,你需要定义Filter并指定其对应的类,同时可以设置初始化参数。例如: ```xml &lt;filter&gt; &lt;filter-name&gt;myFilter&lt;/filter-name&gt; &lt;filter-class&gt;...

    Filter1源代码

    Filter之间是串联的,每个Filter都有机会对请求进行修改或做其他操作。 4. **Filter的实际应用**: - **登录验证**:在用户访问受保护的页面之前,Filter可以检查用户是否已登录,未登录则重定向到登录页面。 - *...

    response in servlet

    2. 过滤(doFilter):每次请求匹配到Filter配置时,都会调用`doFilter(ServletRequest request, ServletResponse response, FilterChain chain)`方法。在这里,我们可以获取并处理Response信息。 3. 销毁(destroy...

    JSP-Filter的简单练习

    在`web.xml`中配置Filter,包括指定Filter类、设置过滤规则以及映射到特定的URL模式: ```xml &lt;filter&gt; &lt;filter-name&gt;myFilter&lt;/filter-name&gt; &lt;filter-class&gt;com.example.MyFilter&lt;/filter-class&gt; &lt;/filter&gt; ...

    Java Filter 限制用户浏览权限

    在部署和配置Filter时,我们需要在web.xml文件中定义过滤器,并设置匹配的URL模式。例如,如果我们希望限制所有以"/admin/"开头的URL,配置可能如下: ```xml &lt;filter&gt; &lt;filter-name&gt;UserAccessFilter&lt;/filter-...

    j2ee过滤器Filter使用详解(实例)

    在此方法中,你可以添加自己的业务逻辑,如检查用户权限、修改请求或响应数据等。 3. `destroy()`:过滤器的销毁方法。当过滤器不再需要或者Web应用停止时,容器会调用此方法,用于清理资源和执行其他关闭操作。 ...

    使用filter拦截servlet和jsp页面的内容,进行过滤后输出

    在实际开发中,我们可能会借助一些框架或工具来简化Filter的使用,如Spring MVC的`@WebFilter`注解,可以更方便地注册和配置Filter。 总之,Servlet Filter是Java Web开发中不可或缺的一部分,它允许我们在请求和...

Global site tag (gtag.js) - Google Analytics