1. 程式人生 > >使用struts的token防止頁面重複提交

使用struts的token防止頁面重複提交

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.sunsoft.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;

/** 
 * MyEclipse Struts
 * Creation date: 12-15-2007
 * 
 * XDoclet definition:
 * @struts.action path="/insert" name="userForm" input="/adduser.jsp" scope="request" validate="true"
 * @struts.action-forward name="prepare" path="/adduser.jsp"
 * @struts.action-forward name="success" path="success.jsp"
 */
public class InsertAction extends DispatchAction {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward prepare(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		
		this.saveToken(request);
		return mapping.findForward("prepare");
	}
	
	public ActionForward adduser(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		
		if(!this.isTokenValid(request)){
			ActionMessages messages = new ActionMessages();
			messages.add("token", new ActionMessage("error.token"));
			this.saveErrors(request, messages);
			return mapping.getInputForward();
		}else{
			this.resetToken(request);
			return mapping.findForward("success");
		}
	}
}

相關推薦

使用struts的token防止頁面重複提交

/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.sunsoft.struts.action; import javax.se

防止頁面重複提交及後退方法

1.提交後禁用提交按鈕(大部分人都是這樣做的) 如果客戶提交後,按F5重新整理怎麼辦? 2.使用Session 在提交的頁面也就是資料庫處理之前: 資料處理完後,修改session("ok")=false。 3.資料處理成功馬上Redirect到另外一個頁面 操作後重新

防止頁面重複提交(使用UUID--Session)

uuid.jsp: <%@ page language="java" import="java.util.*,day22.UuidToken" pageEncoding="UTF-8"%> <html> <head> <

表單防止頁面重複提交方法

使用者在操作表單資料時往往會出現表單資料重複提交的問題,尤其實在Web開發中此類問題比較常見。重新整理頁面,後退操作以前的頁面,單機多次按鈕都會導致資料重複提交。此類問題是因為瀏覽器重複提交HTTP請求導致。    下面簡單介紹以防止表單資料重複提交的四種解決方案。 一、在

頁面按鈕防止ajax重複提交

這兩天在做一個專案,頁面互動非常多,到處都是ajax,測試時發現點選按鈕是很有可能重複請求ajax,看網上說加鎖的方法,不過我也有一個方法,不知道別人用過沒,廢話不說,我用了CSS中的pointer-events屬性,直接上JS程式碼吧; ` var

防止訂單重複提交的幾種方法

第一種辦法: var flag = false;// 在提交函式外面定義個變數防止重複提交   //提交函式 function sublimit() {     if(flag){      

客戶端 防止訂單重複提交 介面處理

如果是瀏覽器,可以採用session的方法 具體的做法:在伺服器端生成一個唯一的隨機標識號,專業術語稱為Token(令牌),同時在當前使用者的Session域中儲存這個Token。然後將Token傳送到客戶端的Form表單中,在Form表單中使用隱藏域來儲存這個Token,表單提交的時候連同這個

javaEE開發中使用session同步和token機制來防止併發重複提交

    通常在普通的操作當中,我們不需要處理重複提交的,而且有很多方法來防止重複提交。比如在登陸過程中,通過使用redirect,可以讓使用者登陸之上重定向到後臺首頁介面,當用戶重新整理介面時就不會觸發重複提交了。或者使用token,隱藏在表單中,當提交時進行token驗證,

jsp防止按鈕重複提交

使用jquery方法: <html> <body> <form method="get" action="" target="box"> <input

MVC_防止HttpPost重複提交

重複提交的場景很常見,可能是當時伺服器延遲的原因,如購物車物品疊加,重複提交多個訂單。常見的解決方法是提交後把Button在客戶端Js禁用,或是用Js禁止後退鍵等。在ASP.NET MVC 3 Web Application中 如何去防止這類HTTP-Post的重複提交呢? 我們可以藉助Session,放置一

如何防止使用者重複提交

在我們的應用系統中,禁止使用者做出多次提交的操作是非常有必要的,比如在B2C這樣的系統裡,假如某頁面有個去銀行結算的提交按鈕,可能因為系統或網路延遲,當用戶點選提交後,返回給使用者的依舊是未付款或等待

防止使用者重複提交的方法

表單重複提交是在多使用者Web應用中最常見、帶來很多麻煩的一個問題。有很多的應用場景都會遇到重複提交問題,比如: 點選提交按鈕兩次。 點選重新整理按鈕。 使用瀏覽器後退按鈕重複之前的操作,導致重複提交表單。 使用瀏覽器歷史記錄重複提交表單。 瀏覽器重複的HTTP請求。   幾種防止表單重複提交的方法   1

客戶端服務端防止使用者重複提交表單

一、什麼是表單重複提交? 當網路有延遲時,使用者提交的表單等資料還沒有完成此次提交,但使用者又多次點選提交,造成使用者資料在資料庫或儲存中被提交多次。 利用執行緒延遲,簡單模擬重複提交。 表單頁面為form.html [html] view plain

防止資料重複提交的6種方法(超簡單)!

有位朋友,某天突然問磊哥:**在 Java 中,防止重複提交最簡單的方案是什麼**? 這句話中包含了兩個關鍵資訊,第一:**防止重複提交**;第二:**最簡單**。 於是磊哥問他,是單機環境還是分散式環境? 得到的反饋是單機環境,那就簡單了,於是磊哥就開始裝*了。 話不多說,我們先來複現這個問

java防止頁面重新整理重複提交

轉自:https://blog.csdn.net/JasonSSH/article/details/7528539 看了網上的,有幾種方法:  1 在你的表單頁裡HEAD區加入這段程式碼:  <META HTTP-EQUIV="pragma" CONTENT="no-c

防止重新整理頁面造成表單重複提交

  public partial class _Default : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {         //第一次載入的時候,

前端頁面js防止重複提交表單

1.第一個方法是我自己想的,就是設定submit按鈕屬性為disabled,然後當後臺請求成功移除這個屬性。 2.第二個是一個面試官告訴我的,我個人覺得和我第一個異曲同工,就是在點選的時候加一個class屬性,然後js判定是否有這個class,如果有的話不再重複提交, 後臺

【layui】一個簡單的防止頁面重復提交的方法

function 防止 item bmi 多次 nbsp mit demo1 query 基本思路是:點擊提交按鈕後彈出遮罩層,防止多次點擊導致的重復提交。 1 <div class="layui-form-item"> 2 <div class="la

利用session防止表單重複提交

使用者在提交表單的過程中,由於網路等原因,可能重複點選提交按鈕,向資料庫重複寫入或者讀取資料,為了防止這種情況發生。   解決方式: 1.客戶端防表單重複提交,在前端使用javascript限制。但是在前端並不能完全限制,比如下網頁原始碼更改,重複重新整理等。 2.服務端防

springMvc 攔截器 防止重複提交

1.DispatcherServlet     SpringMVC具有統一的入口DispatcherServlet,所有的請求都通過DispatcherServlet。     DispatcherServlet是前置控