JSP刷新頁(yè)面表單重復(fù)提交問(wèn)題解決辦法分享
使用sessionID和時(shí)間戳作為標(biāo)識(shí),關(guān)鍵代碼如下:
public class SswpdjAction extends BaseAction{
public String execute(){
/**業(yè)務(wù)代碼**/
................
//設(shè)置標(biāo)識(shí)
this.setSessionToken();
//轉(zhuǎn)到添加頁(yè)面
return "toAdd";
}
public String reSave(){
if(this.token != null && this.token.equals(this.getSessionToken())){
/**設(shè)置新標(biāo)識(shí)**/
this.setSessionToken();
/**業(yè)務(wù)代碼**/
..............
return "toAdd";
}else{
printWriter out = null;
try{
httpServletResponse.setContentType("text/html;charset=UTF-8");
out = httpServletResponse.getWriter();
out.println("<script>alert('刷新提交表單!');</script>");
out.flush();
}catch(IOException e){
e.printStackTrace();
}finally{
if(out != null){
out.close();
}
}
}
return null;
}
}
public class BaseAction extends ActionSupport{
/**jsp頁(yè)面標(biāo)識(shí)**/
protected String token;
public String getToken(){
return token;
}
public void setToken(String token){
this.token = token;
}
public String getSessionToken(){
if(null != httpSession.getAttribute("Token")){
return httpSession.getAttribute("Token");
}else{
return null;
}
}
/**標(biāo)識(shí)生成**/
public void setSessionToken(){
String flag = useMd5(httpSession.getId() + System.currentTimeMillis());
httpSession.setAttribute("Token", flag);
httpServletRequest.setAttribute("SessionToken", flag);
}
/**MD5加密**/
private String useMd5(String str){
byte[] bs = str.getBytes();
String result = null;
try{
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(bs);
result = md5.digest().toString();
}catch(NoSuchAlgorithmException e){
e.printStackTrace();
}finally{
}
return result;
}
}
JSP頁(yè)面設(shè)置標(biāo)識(shí)隱藏域:
<form>
<input type="hidden" name="token" value="${SessionToken}" />
</form>
- js防止表單重復(fù)提交的兩種方法
- javascript下阻止表單重復(fù)提交、防刷新、防后退
- js防止表單重復(fù)提交實(shí)現(xiàn)代碼
- js控制再次點(diǎn)擊按鈕之間的間隔時(shí)間可防止重復(fù)提交
- JSP防止網(wǎng)頁(yè)刷新重復(fù)提交數(shù)據(jù)的幾種方法
- JavaScript實(shí)現(xiàn)點(diǎn)擊按鈕后變灰避免多次重復(fù)提交
- JS Ajax請(qǐng)求如何防止重復(fù)提交
- jsp 重復(fù)提交問(wèn)題
- 一個(gè)JavaScript防止表單重復(fù)提交的實(shí)例
- 前端防止用戶重復(fù)提交js實(shí)現(xiàn)代碼示例
相關(guān)文章
Tomcat網(wǎng)站發(fā)布配置方案詳細(xì)說(shuō)明
Tomcat網(wǎng)站發(fā)布配置方案詳細(xì)說(shuō)明,需要的朋友可以參考一下2013-03-03
J2EE 開(kāi)發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表
J2EE 開(kāi)發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表...2006-10-10
基于JSP實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器的方法
這篇文章主要介紹了基于JSP實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器的方法,實(shí)例分析了顯示與邏輯處理的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-02-02
JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
JSP下動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別分析
這篇文章給大家介紹了JSP下動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別分析,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2007-12-12
JSP 開(kāi)發(fā)中過(guò)濾器filter設(shè)置編碼格式的實(shí)現(xiàn)方法
這篇文章主要介紹了JSP 開(kāi)發(fā)中過(guò)濾器filter設(shè)置編碼格式的實(shí)現(xiàn)方法的相關(guān)資料,我們知道為了避免提交數(shù)據(jù)的亂碼問(wèn)題,需要在每次使用請(qǐng)求之前設(shè)置編碼格式,這里提供一次性修改所有的請(qǐng)求編碼問(wèn)題,需要的朋友可以參考下2017-08-08
JSP中springmvc配置validator的注意事項(xiàng)
這篇文章主要介紹了JSP中springmvc配置validator的注意事項(xiàng)的相關(guān)資料,并說(shuō)明springmvc中spring-servlet.xml、applicationContext.xml的區(qū)別需要的朋友可以參考下2017-07-07
JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)環(huán)境配置詳細(xì)方法
Sun推出的JSP(Java Server Pages)是一種執(zhí)行于服務(wù)器端的動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),它基于Java技術(shù)。執(zhí)行JSP時(shí)需要在Web服務(wù)器上架設(shè)一個(gè)編譯JSP網(wǎng)頁(yè)的引擎。配置 JSP 環(huán)境可以有多種途徑,但主要工作就是安裝和配置Web服務(wù)器和JSP引擎。2008-09-09

