本文目錄一覽:
java中 TOKEN的概念
token 你可以把他當做一個令牌,當第一次訪問時設置一個令牌保存,一般我們保存在session中,當啟動令牌時,那麼就去檢測令牌是否一致,然後銷毀令牌或者重置令牌,這樣第二次再用次令牌訪問時,就會不一致了,直接提示重複提交了
java token有什麼用
Struts本身有一套完善的防止重複提交表單的Token(令牌)機制,但筆者目前的項目自寫的framework沒有用到Struts,故也得自寫防止用戶因為後退或者刷新來重複提交表單內容的Token機制。不難,容易實現。
實現原理:一致性。jsp生成表單時,在表單中插入一個隱藏input字段,該字段就是保存在頁面端的token字符串,同時把該字符串存入session中。等到用戶提交表單時,會一併提交該隱藏的token字符串。在服務器端,查看下是否在session中含有與該token字符串相等的字符串。如果有,那麼表明是第一次提交該表單,然後刪除存放於session端的token字符串,再做正常業務邏輯流程;如果沒有,那麼表示該表單被重複提交,做非正常流程處理,可以警告提示也可以什麼也不做。 百度的.
java token是什麼意思
token
讀音:英 [‘təʊk(ə)n] 美 [‘tokən]
n. 表徵;代幣;記號
adj. 象徵的;表意的;作為對某事的保證的
vt. 象徵;代表
詞組短語
by the same token 同樣地;出於同樣原因
as a token of 作為?的標誌
token ring 令牌環(一個環狀的區域網路)
in token of 表示;作為?的標誌
by this token 由此看來
拓展資料
雙語例句
1,Later on we will combine token sequences into parse trees.
稍後我們會將記號序列組合成解析樹。
2,After normalization of attributes, you can count on every token in an attribute being separated from its neighbors by whitespace.
在屬性規範化後,可以依靠的屬性中的每個記號是通過空白來與其鄰居區分開來。
3,This little gift is a token of our regard.
這點禮物是我們大家的一點心意。
請教Java 登錄token的用法
jsp生成表單時,
1 在表單中插入一個隱藏input字段,該字段就是保存在頁面端的token字符串,同時把該字符串存入session中。
2 用戶提交表單時,會一併提交該隱藏的token字符串。
3 在服務器端,查看下是否在session中含有與該token字符串相等的字符串。
3 .1 如果有,那麼表明是第一次提交該表單,然後刪除存放於session端的token字符串,再做正常業務邏輯流程;(注意此處已經將session端的token字符串 刪除)
3.2 如果沒有,那麼表示該表單被重複提交,做非正常流程處理,可以警告提示也可以什麼也不做(第一次提交後session端的token字符串已刪除)
Java如何登錄token的代碼是什麼?
首先是Token主類。類很簡單
package com.company.util;
import java.util.ArrayList;
import javax.servlet.http.HttpSession;
public class Token {
private static final String TOKEN_LIST_NAME = “tokenList”;
public static final String TOKEN_STRING_NAME = “token”;
private static ArrayList getTokenList(HttpSession session) {
Object obj = session.getAttribute(TOKEN_LIST_NAME);
if (obj != null) {
return (ArrayList) obj;
} else {
ArrayList tokenList = new ArrayList();
session.setAttribute(TOKEN_LIST_NAME, tokenList);
return tokenList;
}
}
private static void saveTokenString(String tokenStr, HttpSession session) {
ArrayList tokenList = getTokenList(session);
tokenList.add(tokenStr);
session.setAttribute(TOKEN_LIST_NAME, tokenList);
}
private static String generateTokenString(){
return new Long(System.currentTimeMillis()).toString();
}
/** *//**
* Generate a token string, and save the string in session, then return the token string.
*
* @param HttpSession
* session
* @return a token string used for enforcing a single request for a particular transaction.
*/
public static String getTokenString(HttpSession session) {
String tokenStr = generateTokenString();
saveTokenString(tokenStr, session);
return tokenStr;
}
/** *//**
* check whether token string is valid. if session contains the token string, return true.
* otherwise, return false.
*
* @param String
* tokenStr
* @param HttpSession
* session
* @return true: session contains tokenStr; false: session is null or tokenStr is id not in session
*/
public static boolean isTokenStringValid(String tokenStr, HttpSession session) {
boolean valid = false;
if(session != null){
ArrayList tokenList = getTokenList(session);
if (tokenList.contains(tokenStr)) {
valid = true;
tokenList.remove(tokenStr);
}
}
return valid;
}
}
在jsp頁面端。
首先import該類:
%@ page import=”com.company.util.Token” %
表單包含隱藏的token字符串:
form
input type=”hidden” name=”%=Token.TOKEN_STRING_NAME %” value=”%=Token.getTokenString(session) %”
/form
在Servlet中添加如下代碼。
if(Token.isTokenStringValid(request.getParameter(Token.TOKEN_STRING_NAME), request.getSession())){
//進行正常業務流程
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/197270.html