request.getParameter可以获取到前台提交到的数据。
如果想对数据处理,进行一些安全方面的转义,这样可以通过较少的代码修改来实现。
在实现的时候,发现request对象并没有提供setParameter方法让我们来修改参数内容。
我们可以通过以下方式来实现。
1.新建立一个项目,项目名称webProject
2.index.jsp里代码如下,打印接收到的参数内容
<%
String name=request.getParameter("username");
System.out.println("name:"+name);
%>
3.访问http://localhost:8080/webProject/index.jsp?username=123<a><input>,结果为
name:123<a><input>
4.在web.xml里添加一个filter
<filter>
<filter-name>securityFilter</filter-name>
<filter-class>info.frady.SecurityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>securityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.SecurityFilter的代码如下
package info.frady;
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;
import javax.servlet.http.HttpServletRequest;
public class SecurityFilter implements Filter {
private FilterConfig filterConfig;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = filterConfig;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
SecirityHttpServletRequestWrapper requestwrapper = new SecirityHttpServletRequestWrapper((HttpServletRequest)request);
//对自定义装饰器初始化后,继续发关原先的请求,不过将ServletRequest request 改为自定义装饰器的对像requestwrapper
chain.doFilter(requestwrapper, response);
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
6.SecirityHttpServletRequestWrapper为自定义的类,继承自HttpServletRequestWrapper
代码如下:
package info.frady;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class SecirityHttpServletRequestWrapper extends HttpServletRequestWrapper {
public SecirityHttpServletRequestWrapper(HttpServletRequest request) {
super(request);
}
//覆写getParameter方法
@Override
public String getParameter(String name) {
String postValue=super.getParameter(name);
postValue=postValue.replace("<", "<").replace(">", ">");
return postValue;
}
}
7.访问http://localhost:8080/webProject/index.jsp?username=123<a><input>,结果为
name:123<a><input>
分享到:
相关推荐
标题“使用HttpServletRequestWrapper在filter修改request参数”揭示了主要知识点,即如何在过滤器中通过自定义`HttpServletRequestWrapper` 子类来动态改变请求参数。这通常用于处理如数据验证、安全过滤、参数转换...
5. **保存修改**:当用户完成所有修改后,可以通过`BindingSource`保存到原始数据源。如果是数据库,通常需要将`DataTable`中的更改提交回数据库。 ```csharp if (bindingSource1.IsCurrentRowDirty) { binding...
- 当用户提交修改时,更新选定行在数据数组中的记录。 - 同步更新DOM中的对应单元格内容。 7. **事件委托** - 避免为每个按钮或单元格添加单独的事件监听器,而是可以使用事件委托。 - 在表格容器元素上添加一...
在本文中,我们将深入探讨如何使用Delphi编程环境与SQLite数据库进行交互,实现基本的数据操作,包括增加、删除和修改。SQLite是一个轻量级、自包含的数据库引擎,广泛应用于各种桌面、移动以及嵌入式系统。Delphi,...
总的来说,虽然Java中的请求参数默认是只读的,但通过`HttpServletRequestWrapper`和`Filter`,我们可以实现动态修改请求参数。同时,为了保证应用的安全性,必须严格验证和过滤输入,防止参数被篡改。在实际开发中...
在Java编程领域,"Java登录注册列表小项目和Filter测试代码"是一个常见的实践项目,它涵盖了Web应用程序开发中的基础功能,如用户身份验证、权限控制以及数据操作。在这个项目中,开发者通常会创建一个简单的用户...
`FilterServlet`是Java Servlet技术中的一个重要组成部分,它允许开发者在请求到达目标Servlet或JSP之前以及之后进行...在这个案例中,我们看到了如何通过`Filter`来实现敏感内容的过滤,确保了用户提交信息的安全性。
总结起来,PowerBuilder DataWindow的数据更新技术通过数据缓冲机制提供了高效、灵活的数据管理方式,使得开发者能够更好地控制数据的编辑、验证和提交,尤其适用于需要实时更新关联数据的复杂业务场景。理解并熟练...
4. **提交首次修改**:使用`git commit`命令将暂存区中的修改提交到仓库。 ```bash $ git commit -m "Git tracks changes" [master d4f25b6] Git tracks changes 1 file changed, 1 insertion(+) ``` 5. **...
对于已有数据的修改,先通过查询找到需要更新的记录,然后修改`Recordset`中的相应字段,最后调用`Update`方法保存更改。SQL形式为`UPDATE 表名 SET 字段 = 新值 WHERE 条件`。 5. **连接管理** 数据库连接的建立...
- **提交测试数据:** 构造一个包含中文字符的POST或GET请求,观察返回结果是否正常显示。 - **查看日志文件:** 查看Tomcat的日志文件(如`catalina.out`),确认是否有乱码或异常信息。 - **使用工具检测:** 使用...
通过上述分析可以看出,`ArgsIsValidFilter`过滤器有效地实现了对跨域提交数据的防护。它通过检查HTTP请求的`Referer`头部信息,并结合预设的白名单来判断请求的有效性,从而确保了系统的安全性。此外,该过滤器还...
在本系统中,Servlet充当了后台服务的角色,接收JSP提交的数据,执行业务逻辑,如添加、删除、修改和查询学生信息。Servlet还可以调用数据库接口,通过SQL语句操作数据库,完成数据的增删改查。 JUnit是Java编程...
通过使用JavaScript,开发者可以在用户交互时提交数据,这样用户无需等待整个页面刷新,提升了用户体验。常见的JavaScript库,例如jQuery,提供了一种简化的方式调用Ajax,如下所示的jQuery Ajax代码片段: ```...
- 编辑(Edit):用户可以直接在数据窗口中编辑数据,更改后的数据会自动提交到数据库。 - 排序(Sort):支持对数据进行升序或降序排列。 - 分组(Group):根据一个或多个字段对数据进行分组,便于聚合计算。 ...
3. **更新**:用户修改数据并提交,Servlet捕获更新请求,更新数据库中的相应记录。 4. **删除**:用户选择删除某条数据,Servlet处理删除请求,从数据库中移除该记录。 在这个过程中,Filter可以用来确保只有已...
表单提交后,后台JavaServlet或Filter会接收到请求,执行上述逻辑。同时,可以使用AJAX技术实现异步更新,提供更好的用户体验。 以下是一个简单的JSP表单示例: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> ...
数据窗口包含多个对象,如Item(项)表示单个数据字段,Column(列)定义字段的显示属性,Filter(过滤器)用于筛选数据,Group(分组)用于数据分组,Summary(汇总)则用于计算总计或平均值等统计信息。...
在“layui添加修改删除”这个主题中,我们将深入探讨如何使用layui实现数据表格的基本操作,包括添加、修改和删除功能。 首先,layui的数据表格(layui table)是其核心组件之一,用于展示数据并进行交互。要创建一...