`
Mr_Chunlei
  • 浏览: 28504 次
  • 性别: 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;
    }



分享到:
评论

相关推荐

    Puggly:可插拔的Java配置的ServletFilter

    只需创建LoggingFilter的实例,配置要记录的消息以及如何有条件地修改已记录的内容即可。 只需几行纯Java代码即可完成。 用法 LoggingFilter filter = new LoggingFilter(); // do not log requests to health ...

    JavaWeb Servlet中Filter过滤器的详解

    其本身不能生成请求request和响应response,只提供过滤作用(Servlet被调用之前检查Request对象修改其相关信息,Servlet被调用后检查Response修改其相关信息),Filter对象常驻服务器。 2.Lifecycle  (1).启动...

    ssh(structs,spring,hibernate)框架中的上传下载

     我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...

    微服务框架搭建 基于oauth2 认证中心服务

    #微服务框架认证授权中心 ...修改配置数据库密码 //数据库密码使用druid加密 *表示密码 java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools ****** //nacos安装请查看官网资料 授权码: ...

    jfinalpluginsjfinal-dreampie.zip

    7.Flyway 数据库自动脚本升级 Plugin,用于自动生成或升级数据库,避免不断使用数据库工具修改数据导致的版本问题 public class FlywayPlugin implements IPlugin { } 8.lesscss compiler plugin,编译...

    Spring MVC 入门实例

    配置 CharacterEncodingFilter (filter 标签), 否则你会发现中文乱码. 因为我的 jsp 和 html 文件都是 UTF-8 编码的, 所以我在 param-value 标签中设置了 UTF-8. 估计你使用的是 GB2312 或者 GBK, 立即转到 UTF-8 ...

    超市管理系统

    chain.doFilter(request,response); return; } ②方式2 单独放置登录页面 login.html login.jsp 4.项目周期 1周时间 项目答辩时间: 5.项目分析: (1)登录功能: ①根据用户名查询数据库, ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.8.1 Struts Prepare And Execute Filter过滤器 8.8.2 struts.xml文件配置出错 8.9 精彩回顾 第9章 庖丁解牛 ——揭密Struts2高级技术 9.1 本章学习任务 9.1.1 本章知识体系 9.1.2 实例开发任务 9.2 OGNL表达式...

    amis前端低代码框架 v1.1.4

    api 新增 responseData 配置 (#1379) 添加季度选择器 Quarter (#1382) Container 支持设置样式 (#1411) 加入 ecStat, Apache ECharts (incubating) 的统计和数据挖掘工具 (#1419) Form 支持 feedback (#1420) ...

    ZendFramework中文文档

    1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) ...14.5.5. Adding Filter ...

    oracle asm rac

    分别配置eth0和eth1(我们只演示node1的配置,node2也配置成相应的IP) 保存退出 重启使配置生效 3、关闭没必要的服务 chkconfig autofs off chkconfig acpid off chkconfig sendmail off chkconfig cups-...

    asp连接数据库代码实例

    response.write \"数据库连接出错,请检查conn.asp中的连接字符串。\" response.end end if function CloseDB Conn.Close set Conn=Nothing End Function %&gt; dim badword badword=\"\'|and|select|update|...

    asp.net知识库

    HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...

    Delphi5开发人员指南

    经典中的经典! 目 录 译者序 序 前言 第一部分 快速开发的基础 第1章 Delphi 5下的Windows编程 1 1.1 Delphi产品家族 1 1.2 Delphi是什么 3 1.2.1 可视化开发环境 3 1.2.2 编译器的速度和已编译代码的效 ...

    webx3框架指南PDF教程附学习Demo

    该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用,并附学习的Demo 为什么要用Webx而不是其它的开源框架? 现在有很多Java的Web框架可供选择,并且它们也都是免费的。例如: • Struts ...

Global site tag (gtag.js) - Google Analytics