`

Struts2day04Struts2.0实现阻止表单重复提交

 
阅读更多

1.使用叫做token的拦截器,在表单中加入<s:token></s:token>

 在login.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> </head>
  <body>
     <center>
   <form action="login.action" method="post">
   <s:token></s:token>
   userName:<input type="text" name="username"/><br>
   passWord:<input type="text" name="password"/><br>
   <input type="submit" value="Submit"/>
   </form>
   </center>
  </body>
</html>

 2.写一个Action类 LoginAction extends ActionSupport

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
	private String username;
	private String password;
	@Override
	public String execute() throws Exception {
		System.out.println("username="+username+"password="+password);
		System.out.println("OK");
		System.out.println(" Action Execute...");
		return SUCCESS;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

 3.在struts.xml中配置

<struts>
   <package name="loginDemo" namespace="/" extends="struts-default">
       <action name="login" class="com.jsu.struts2.action.LoginAction">
		<interceptor-ref name="token"></interceptor-ref>
		<interceptor-ref name="defaultStack"></interceptor-ref>
		<result>/index.jsp</result>
		<result name="invalid.token">/error.jsp</result>
	</action>
   </package>
</struts>

 4.在浏览器地址栏http://localhost:8080/struts2_04/login.jsp 提交数据之后,在回退,在重复提交会显示到错误页面,观察控制台输出的信息

分享到:
评论

相关推荐

    Struts2Day2

    `Struts2Day2_token`可能讲解了防止重复提交的Token机制。在多用户并发环境下,为了避免同一表单被多次提交导致数据异常,Struts2提供了Token插件。它在客户端存储一个令牌,并在服务器端验证,如果发现重复提交,...

    达内培训机密资料_struts2_day04(3)

    掌握级别的作业则更进一步,要求学生能够运用Struts2框架编写简单的Web应用程序,例如实现用户登录功能、表单验证等功能,这需要学生熟练掌握Struts2的核心配置文件(struts.xml)以及Action类的设计方法。...

    struts2框架2016版资料day01

    4. **Action与结果**:每个Action代表一个业务操作,当用户提交表单或点击链接时,Struts2会根据配置找到相应的Action进行处理。处理完成后,Action会返回一个Result,Result可以是重定向、转发到另一个JSP页面或者...

    Struts2项目案例

    现在,我们来看这个"struts2day04"和"struts2day04CRUD"案例,它们很可能是关于创建、读取、更新和删除(CRUD)操作的基础示例: 1. **创建(Create)**:可能涉及到一个表单,用户输入数据,然后提交到服务器。...

    达内培训机密资料_struts2_day05(3)

    在Struts2中,可以通过多种方式实现表单验证: - **使用字段级验证**:为每个字段设置验证规则。 - **使用Action级验证**:在Action类中实现`validate()`方法来进行验证。 - **使用拦截器**:通过自定义拦截器进行...

    达内培训机密资料_struts2_day04(2)

    其中,Struts2的核心标记库(Core Tag Library)是Struts2中最常用的一组标签,它们提供了多种用于表单、数据展示、URL构建等功能的标签。 #### 1.2 使用场景 在Web应用开发中,经常需要处理各种表单数据以及显示数据...

    传智168期JavaEE struts2杜宏 day 29~day31笔记.pdf

    标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...

    struts2课件第四天

    在"day04.txt"和"struts2_04、struts2_05"的文件中,可能包含了具体的案例分析和实践操作,比如创建Action类、编写配置文件、使用拦截器、处理表单提交等。通过这些实例,你可以更好地理解Struts2框架的使用方式,...

    达内培训机密资料_struts2_day01(2)

    5. **创建JSP页面**:创建`nameform.jsp`页面用于接收用户的输入,并通过表单提交到Struts2的Action处理方法。 ```html &lt;title&gt;&lt;/title&gt; &lt;form action="/outman/day01/welcome.action" method="post"&gt; ...

    JavaEE Struts文件上传

    7. **Day01_StrutsUpload**:这个文件夹可能包含了一个示例项目,其中包括了Struts2配置文件、Action类、HTML表单以及相关的资源文件。通过分析这些文件,你可以看到一个完整的Struts2文件上传应用的结构和实现细节...

    struts2课件第二天

    - Struts2有一个强大的插件体系,如Struts2-dojo-plugin提供AJAX支持,Struts2-convention-plugin实现自动Action映射等。 - 学习中可能会接触到这些插件的安装和使用。 8. **Tiles框架集成** - Struts2可以与...

    JavaEE struts2 Hibernate结合贴吧小案例

    在Struts2中,Action返回的结果通常会与一个JSP页面关联,通过Struts2标签库(如s:form、s:textfield等)来渲染表单和显示数据。 总的来说,这个小案例是一个很好的实战练习,涵盖了JavaEE开发中的重要组成部分,...

    达内培训机密资料_struts2_day02(2)

    根据提供的文件信息,我们可以归纳出以下相关...这些内容不仅涵盖了Struts2的基础概念,还涉及到了OGNL表达式的使用、ValueStack的管理以及分页功能的具体实现方法等,对于学习和实践Struts2都是非常有价值的参考资料。

    达内培训机密资料_struts2_day03(2)

    根据给定的文件信息,我们可以总结出以下关于Struts2框架的重要知识点: ### 一、Struts2框架介绍 Struts2是一个基于MVC模式的Java Web应用框架,它简化了Web应用程序的开发过程,提供了丰富的插件和标签库来支持...

    达内培训机密资料_struts2_day02(3)

    4. **编写视图**:使用Struts2的标签库创建登录表单。 5. **测试**:启动Tomcat服务器,访问登录页面进行测试。 通过以上介绍,我们可以看到Struts2不仅提供了一种优雅的方式来构建Web应用,还通过其强大的功能简化...

    简单易懂Struts核心讲解

    在提供的压缩包文件中,"struts_day_01.pdf"可能涵盖了Struts的基本概念和安装配置,"struts_day_02[3].pdf"可能涉及了标签库的使用,"struts_day_05.pdf"可能讲解了验证框架的详细操作,而"struts_day_06.pdf"可能...

    Struts2大全

    4. **Validation**:Struts2提供了强大的验证框架,可以进行表单字段的验证,包括客户端和服务器端验证。XML文件验证是其中一种方式,通过配置XML文件定义验证规则,而手工验证则是在Action类中直接编写代码实现。 ...

    struts2,hibernate,spring,springmvc,mybatis

    `day54_struts_拦截器,国际化,重复提交`表明这个部分可能涵盖了Struts2的拦截器机制,它允许开发者在请求处理前后插入自定义逻辑,如身份验证、日志记录等。国际化(i18n)则涉及如何支持多种语言,而防止重复提交...

    Struts选择题(含答案).doc

    本题涉及Struts2的核心概念、配置文件、前端控制器以及数据模型的表示。 1. 在Struts2中,`struts.xml`配置文件定义了应用的行为。在给出的配置代码中: ```xml &lt;package name="struts2" extends="struts-default" ...

Global site tag (gtag.js) - Google Analytics