在用分派action的时候,我有两个页面addnews.jsp、listnews.jsp,
在NewsAction.java中有两个方法:
addNews(),listNews()。
当我在addnews.jsp中提交表单到action中的addNews()中,
在里面我执行完插入数据库的操作以后,我希望转向到listnews.jsp中,
所以一般想到的都是写:return listNews(mapping, form, request, response);然后再listNews()方法中我执行了查询数据库的操作,
最后我再forword到listnews.jsp,这个流程应该是非常清晰的,但是问题出来了,当我们增加新的文章以后,我们返回到列表界面,
但是url路径仍然是http://localhost:8080/newstest/newsAction.do?method=addNews 那么这就要出现问题了,当我们不断的刷新页面的时候,我们会发现,列表中增加了很多重复的数据,这是因为刷新url路径时,请求还是从插入数据库的操作开始的,所以一遍遍的执行插入操作,造成了页面的重复提交。
怎么解决呢?我们知道,重定向可以解决页面刷新带来的数据的重复提交的问题,我们自然可以利用重定向的方式来解决这个问题。
但是struts的action里面mapping.findword();
跳转的话,默认的是在工程文件夹里面找要跳转的页面。这种情况,怎么解决呢?
修改struts-config.xml 文件, 在action里面有一个redirect重新定向的属性,struts中默认的是false,添加这个属性,改成true,在forword中写上要跳转页面的绝对或者相对地址就行了
修改如下:
<action-mappings>
<action attribute="newsActionForm" name="newsActionForm"
input="/addnews.jsp" path="/newsAction" parameter="method"
scope="request" type="com.yongtree.news.action.NewsAction">
<forward name="list" path="/listnews.jsp"
redirect="true"></forward>
<forward name="error" path="/addnews.jsp"></forward>
</action>
</action-mappings>
分享到:
相关推荐
重定向在实际应用中的常见用途包括登录验证、防止重复提交、页面跳转等。在设计重定向时,需要注意避免无限循环重定向和安全问题,例如在登录验证失败时,不应重定向到登录页面,而应返回错误信息。同时,合理使用...
这两种结果类型在实际应用中有着重要的作用,特别是对于处理URL重写、防止重复提交等问题。 首先,我们来理解"redirect"结果类型。"redirect"是HTTP协议中的302临时重定向,它会向客户端浏览器发送一个响应,指示...
综上所述,Struts2框架提供了token机制以及灵活的跳转方式配置来解决表单重复提交的问题。开发者在使用时需要注意配置token相关标签和拦截器,并通过设置正确的结果视图跳转类型来防止因刷新页面导致的重复提交。...
下面将详细解释Struts2如何通过重定向来防止表单重复提交。 首先,理解表单重复提交的场景:用户在提交表单后,由于网络延迟或其他原因,可能会无意中多次点击提交按钮。如果服务器没有处理这些重复请求,那么相同...
在Struts2中,防止重复提交是一个重要的问题,因为它可能导致数据不一致性和服务器资源的浪费。本文将详细介绍如何在Struts2中解决这个问题,以及相关的技术概念。 首先,我们要理解Struts2中的拦截器(Interceptor...
本节主要关注Struts在处理两个关键问题上的高级应用:防止重复提交和文件上传组件的使用。 **一、解决重复提交** 在Web应用程序中,重复提交是一个常见的问题,可能导致数据不一致或服务过载。Struts通过几种策略...
本话题将探讨如何在Struts 1.2中利用Token机制来解决HTTP请求的重复提交问题,这是一种常见的防止用户意外或恶意多次点击提交按钮导致数据异常的策略。 一、重复提交问题 在Web应用中,如果一个表单被用户意外或者...
- **页面跳转(Redirect After Post)**:处理完请求后,使用`redirect`或`redirectAction`结果,将用户重定向到新的URL,避免回退按钮导致的重复提交。 4. **Struts2配置** 对于以上功能的实现,Struts2的配置...
Struts2提供了一个内置的`s:token`标签来解决这个问题。 一、Struts2的`s:token`标签工作原理 `s:token`标签是Struts2的一个动作标签,它的主要作用是在表单中生成一个唯一的令牌,这个令牌会存储在服务器端的...
总结来说,Servlet、Struts和SpringMVC都提供了各自的解决方案来防止表单重复提交,主要方法包括使用Session、令牌机制、重定向和拦截器等。开发者可以根据项目需求选择合适的方式来实现,确保应用的稳定性和数据...
Struts2是一个流行的Java ...总结来说,Struts2通过Token机制有效地解决了表单重复提交的问题,提高了Web应用的健壮性。通过合理的配置和拦截器的使用,开发者可以轻松地集成这一功能,确保每个表单请求只被处理一次。
在Struts2框架中,防止重复提交是一个重要的安全性考量,因为重复提交可能导致数据不一致性和资源浪费。在上述描述中,给出了三种主要方法来解决这个问题: 1) **使用 `<s:token>` 标签** Struts2 提供了一个称为 ...
### Struts2防止重复提交的解决方案 #### 一、引言 在Web应用程序开发中,一个常见的问题是如何有效地防止表单的重复提交。这不仅能够提高用户体验,还能增强系统的安全性。Struts2作为一款广泛使用的Java Web应用...
"防止表单重复提交 token"是Struts2提供的一种解决方案,通过在请求中加入一个唯一的token来确保请求的唯一性和一致性。 首先,我们来看如何实现这个机制。在Struts2中,我们可以使用拦截器(Interceptor)来实现...
### JSP重复提交问题及其解决方法 #### 一、引言 在Web应用程序开发中,尤其是在使用Java Server Pages (JSP)技术时,一个常见的问题是重复提交数据。当用户不小心刷新了页面或按下了浏览器的“后退”按钮时,可能...
Struts的Token机制是Web应用中防止表单重复提交的一种常用方法。在处理表单提交时,如果用户意外地多次...在阅读《用Struts的Token机制解决表单重复提交.doc》文档时,可以更深入地学习如何在实际项目中应用这一机制。
### Struts Token机制防止页面刷新及重复提交 在Web应用开发过程中,特别是在使用MVC框架如Apache Struts进行开发时,防止表单重复提交是一个重要的安全措施。表单重复提交通常发生在用户点击“提交”按钮后,由于...
1. **创建Token:** 当用户打开一个需要防止重复提交的表单时,Action类需要生成并设置Token。通常在准备(Prepare)阶段进行,例如在`prepare()`方法中。 ```java public class MyAction extends ActionSupport { ...