HttpServletRequestWrapper

1). why

需要改变从 Servlet 容器 (可能是任何的 Servlet 容器)中传入的 HttpServletRequest 对象的某个行为,该怎么办?

一. 继承 HttpServletRequest 接口的 Servlet 容器的实现类,但就和具体的容器相耦合了

二. 提供 HttpServletRequest 的实现类,很麻烦,而且也需要和具体的容器相耦合

三. 使用装饰器设计模式:

  > 提供一个类,该类实现 HttpServletRequest 接口;

  > 把容器实现的 HttpServletRequest 接口的实现类作为上述类的一个成员变量;

  > 使用 HttpServletRequest 成员变量来实现 HttpServletRequest 接口的所有方法

时间: 2024-10-21 06:46:05

HttpServletRequestWrapper的相关文章

Servlet基于HttpServletRequestWrapper的文件上传

在使用servlet上传的时候,因为request里面有时候既包含了参数信息还有文件信息,取出来的时候就会很麻烦,所以我们可以根据request取出参数的原理,相当于自定义一个request来实现我们的文件上传和其他参数取出的分离. 一.关联关系和依赖关系 介绍这个问题之前,需要先理解几个概念 关联关系 用下面简单代码解释,也就是A里面包含一个B的实例 Class A{ private B b; } 依靠关系 用下面代码解释就是A中的方法需要B类的作为参数参与 Class A{ public v

使用HttpServletRequestWrapper在filter修改request参数

处理过程: (1)页面提交请求“/sa?userid=123456789&username=rensanning” (2)通过Filter处理加入新参数“name=newname” (3)sa的Servlet中forward到“/sb?myname=rensanning&mycountry=china” (4)sb的Servlet中生成页面输出所有参数:userid.username.myname.mycountry.name 第一步: 最简单,在页面上先输出一个href为改地址的链接即可

HttpServletRequestWrapper的使用

老大给了一个很实际的需求:有段程序,使用Http的方式与合作商交互,而且是明文传输数据.我方的代码已经打包放在服务器上运行了很长时间,这时合作商突然要求修改数据传输的方式,要求加密后再传输,而我方的原有的代码不能改变,以防止引发其它问题. 问:如何在不修改我方现有的代码的前提下,满足合作商的要求? 可能大家都想到了,只要加上一个过滤器Filter不就可以了吗?事实就是这样的,采用Filter+HttpServletRequestWrapper就可以解决这个问题. 首先:在filter中拦截到加密

HttpServletRequestWrapper模拟实现分布式Session

HttpSession的内容都放在一个单独的Map中,模拟远程分布式Session. 1.使用HttpServletRequestWrapper创建自定义Request2.使用动态代理包装自定义Request返回的HttpSession对象3.创建过滤器,使用自定义Request替换原有的Request对象.4.在Servlet中得到的HttpSession对象,写入和读取内容都假设通过远程Session服务器. 创建自定义的Request,返回动态代理的HttpSession import j

继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数

一 简介 如题所示,有时候我们需要在一个请求到达Controller之前能够截获其请求,并且根据其具体情况对 HttpServletRequest 中的参数进行过滤或者修改.这时,有的同学可能会想:我们是否可以在一个Filter中将 HttpServletRequest 里的所有参数都取出来分别进行过滤然后再放回到该HttpServletRequest 中呢? 很显然,在 HttpServletRequest 貌似只有 setAttribute(String name, Object o) 这个

[Web安全之实战] 跨站脚本攻击XSS

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points:   1. 认识XSS 2. XSS攻击 3. XSS防御(重点) 一.认识XSS先 先说个故事吧,在上一篇,我还想说这个案例.其实什么叫攻击,很简单.获取攻击者想要的信息,就黑成功了.抓到一个Tomcat漏洞(这不是我说的,一个认识的人说的),上传一个JSP,里面模拟HttpClient,下载一个木马,运行.OK,搞定了.所

EncodingFilter

1.EncodingFilter.java 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.Servl

javaweb解决post和get请求方式中文乱码问题(通用)

添加一个过滤器,解决乱码问题,代码如下: 1 import java.io.IOException; 2 import java.io.UnsupportedEncodingException; 3 import java.util.Map; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet

java HttpServletRequest和HttpServletResponse詳解

這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 最近由於CAS相關的JAR包的重新封裝,所以想盡量做到0配置,而這個過程中大量使 用HttpServletRequest,現在整理如下,以便以後查閱.(表格為從別的地方復制的,排版渣瞭點,酬和看吧.) 請求與響應相關的類和接口非常多,下表是主要的與請求和接口相關的類以及接口. 主要的與請求和接口相關的類及接口 方法 說明 ServletInputStrea