-
拦截器处理危险的表单数据有误?5
HttpServletRequest request = ServletActionContext.getRequest();
Enumeration<String> paramters = request.getParameterNames();
while( paramters.hasMoreElements() ){
String name=paramters.nextElement();
String value = request.getParameter( name );
value = value.replaceAll("<", "<" );
value = value.replaceAll(">", ">" );
request.setAttribute(name, value);
}
我配置了一个自定义拦截器,来处理表单数据,上面是拦截器的主要代码,但根本没有实现危险代码的替换,
想问一下,应该如何正确的处理表单危险信息呀
谢谢2009年5月14日 16:01
1个答案 按时间排序 按投票排序
-
public String intercept(ActionInvocation invocation) throws Exception {
log.debug("Start AuthenticationInterceptor");
final Object action = invocation.getAction();
final ActionContext context = invocation.getInvocationContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext((ServletContext) context
.get(SERVLET_CONTEXT));
HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
。。。。
}
你写错了2009年5月14日 16:35
相关推荐
Struts2提供了拦截器(Interceptor)机制,可以自定义拦截器来处理表单提交。例如,可以创建一个Token拦截器,生成和验证令牌。以下是一个简单的步骤: 1. **创建Token插件配置**:在struts.xml文件中配置Token拦截...
如果匹配,处理表单数据;如果不匹配或Session中没有对应的Token,说明是重复提交,服务器则忽略此次请求。 - **清理Token**:处理完表单后,应从Session中删除Token,以允许下一次的提交。 5. **Struts2配置**:...
在Web环境中,由于网络延迟或用户误操作,可能会导致同一个表单数据被多次提交,这就是重复提交。这种现象可能导致数据不一致,对业务逻辑造成严重干扰。例如,在银行转账操作中,如果一个转账请求被重复提交,可能...
然而,Web应用在处理表单提交时可能会遇到一个问题,即用户在短时间内连续点击提交按钮,导致服务器接收到重复的请求,这被称为表单重复提交。为了解决这个问题,开发者通常会采用Token机制。 Token机制的核心思想...
在实现上,开发者可以在JSP表单页面中使用标签生成唯一的token标识,并在struts.xml文件中配置相应的token拦截器以及invalid.token结果视图。 在配置示例代码中,开发者需要在login.jsp页面中加入<s:token></s:...
如果Token存在于session中且与提交回来的Token匹配,那么就处理表单数据;如果不匹配或者session中没有对应的Token,则认为是重复提交,忽略此次请求。 4. **销毁Token**:无论表单处理成功还是失败,服务器都会从...
总的来说,Struts2的`token`拦截器是防止重复提交的有效解决方案,通过结合合理的拦截器配置和跳转策略,可以确保应用程序的稳定性和数据一致性。在实际开发中,还需要考虑其他因素,如异常处理、用户体验优化等,以...
3. **利用Ajax异步提交**:通过Ajax提交表单,可以在后台处理完数据后再更新页面状态,这样用户不会看到页面刷新,也就无法再次提交。在`success`回调中,可以重置表单或恢复提交按钮的状态。 4. **页面跳转或显示...
在处理表单提交时,如果用户意外地多次点击了提交按钮,可能会导致数据的重复录入,从而引起不必要的问题,例如订单重复、数据库数据异常等。为了解决这个问题,开发者可以利用Struts框架提供的Token机制。 首先,...
本文详细介绍了如何在Struts2框架中使用`<s:token/>`标签和`token`拦截器来防止表单重复提交。通过这种方式,可以有效地避免因重复提交而导致的数据冗余和其他潜在问题。对于开发者来说,理解和掌握这些技术是非常...
Struts Token机制是一种防止表单重复提交的有效策略,尤其在处理关键操作时,如金融交易或数据修改,防止用户意外或恶意多次点击提交按钮导致的数据重复性问题。下面将详细介绍Struts Token的工作原理、实现方式及其...
Struts2提供了一种简单有效的方法来解决表单重复提交的问题,即通过使用`<s:token>`标签和相关的拦截器。 1. **实现原理**: - 在每次表单提交前,Struts2会生成一个唯一的令牌(Token),并将其存储在用户的Session...
3. **Token防止表单重复提交**:为避免用户因误操作导致的重复数据提交,可以采用Token机制。在用户提交表单时生成一个唯一的Token值,将其存储在服务器端(如Session)和客户端(如隐藏字段)。再次提交时,服务器...
在 Web 应用中,重复提交问题可能出现在用户网络不稳定或误操作的情况下,导致同一份表单数据被多次提交,这可能会导致数据冗余或业务逻辑错误。为了解决这个问题,Struts 提供了一种基于 token 的机制。 1. **...
- 利用Struts拦截器(Interceptor),可以实现通用的重复提交检查,拦截并处理重复的请求。 - **基本原理** 服务器端的Token机制主要是基于一次性的标识,确保每个请求的唯一性,防止同一个请求被多次处理。 -...
首先,Struts2是基于MVC(Model-View-Controller)架构的一个开源Web应用框架,它简化了Java Web开发过程,提供了强大的动作调度和拦截器机制。在Struts2中,我们可以定义Action类来处理用户的请求,这些Action类与...
当我们处理表单提交时,可以将一个标记(如已处理状态)存入Session,后续的重复请求检查该标记,若已处理则忽略。 2. **自定义拦截器**:创建一个实现了Spring的HandlerInterceptor接口的拦截器类,重写`preHandle...
3. **令牌验证**:如果令牌匹配,那么表单数据会被正常处理;如果不匹配或者令牌不存在,那么表单提交将被拒绝,以此来防止重复提交或非法请求。 4. **令牌回退**:当表单提交成功后,为了防止用户意外刷新页面导致...
在Struts框架中,令牌机制(Token)是一种防止重复提交的有效方法,它主要用于处理表单数据的并发控制,防止用户意外或者恶意地多次提交表单,从而确保数据的一致性和安全性。 在Web应用中,用户可能会因为网络延迟...
在处理表单提交时,避免重复提交是一个典型的需求,以防止因网络延迟或用户误操作导致的数据冗余。本主题将深入探讨如何使用Spring Boot和Redis结合AOP(面向切面编程)来实现这一目标。 首先,让我们了解一下...