java中token
1. 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())){
//進行正常業務流程
2. java 介面測試 token處理
不是很明白你的問題,是指java後台端如何驗證token么?java端需要寫過濾器針對請求的報文頭或者你傳的token進行檢驗
3. java token有什麼用
Struts本身有一套完善的防止重復提交表單的Token(令牌)機制,但筆者目前的項目自寫的framework沒有用到Struts,故也得自寫防止用戶因為後退或者刷新來重復提交表單內容的Token機制。不難,容易實現。
實現原理:一致性。jsp生成表單時,在表單中插入一個隱藏<input>欄位,該欄位就是保存在頁面端的token字元串,同時把該字元串存入session中。等到用戶提交表單時,會一並提交該隱藏的token字元串。在伺服器端,查看下是否在session中含有與該token字元串相等的字元串。如果有,那麼表明是第一次提交該表單,然後刪除存放於session端的token字元串,再做正常業務邏輯流程;如果沒有,那麼表示該表單被重復提交,做非正常流程處理,可以警告提示也可以什麼也不做。 網路的.
4. java 怎麼獲取微信的token
token是密碼,URL是你部署微信公眾號伺服器的地址。開發就是將高級功能介面文件部署在伺服器上,使能被訪問。介面文件在微信公眾號幫助文檔裡面找。token是你在介面文件里自己設置的,設置後回到高級功能里來設置成一樣的,目的是告訴公眾平台,那個伺服器是我的,不信你看token都是一樣的,這個過程就是驗證密碼。
所以,token是你設置的
5. Java中Token類需要自己創建嗎
你好,很高興回答你的問題。
你的這個問題沒有上下文環境,所以無法准確回答。
一般,如果是已經有成熟的現成的工具或框架是可以拿來用的。
如果沒有,那就只好自己寫了。
當然,如果是在做練習,或者是學習作業要求自己寫,那還是自己寫一寫的好。
6. java的token就是驗證碼嗎
TOKEN是標記的意思,在java中多用於簽到。 解釋:tOKEN通常具有實時性,也就是說如果超過特定的標記時間,之後標記會自動失效,如手機驗證碼,動態的登錄驗證碼都是可以認為是標記的一種形式。
7. java token是什麼意思
java中,token一般是做驗證碼/令牌。也可以是標記的意思,在java中多用於簽到。
token通常具有實時性,也就是說如果超過特定的標記時間,之後標記會自動失效,如手機驗證碼,動態的登錄驗證碼都是可以認為是標記的一種形式。防止惡意的提交就可以用token
8. java里邊防止重復提交的token機制不太會搞,使用token需要什麼工具嗎急等
1.在Struts中,如何實現防止表單的重復提交操作?
Struts的Token(令牌)機制能夠很好的解決表單重復提交的問題,
基本原理是:
1)伺服器端在處理請求到達之前,會將請求中包含的令牌值與保存在當前用戶會話中的令牌值進行比較,看是否匹配。
2)在處理完該請求後,且在答復客戶端之前,會產生一個新的令牌值,該令牌值除傳給客戶端以外,也會將用戶會話中保存的舊的令牌值進行替換。
3)這樣如果用戶回退到剛才的提交頁面並再次提交的話,客戶端傳過來的令牌值就和伺服器端的令牌值不一致,從而有效地防止了重復提交的發生。
2.Struts使用Token機制,來防止惡意的破壞和重復提交問題,也就是點擊後退後在再提交,這是Struts無法發現的
3.在form中生成一個token碼,在session中也保存有一個同樣的token碼,
當表單提交後,判斷兩個token碼相等後,就會改變session中的這個token碼,
當然在用回退後,form的token碼是不會變的,在提交,還會判斷兩個token碼是否相等,如果不等就會拋出異常,證明這是過時的垃圾數據。
作用:Token機制可以解決表單的重復提交;
產生token的兩種方式:
<1>.form表單的post請求,使用隱藏域<inputtype="hidden"name="token"value="${token}">;
<2>.直接使用超級鏈接<html:linkaction=""trasantion="true">,可以直接在鏈接後面添加token值。
9. 請教Java 登錄token的用法
jsp生成表單時,
1 在表單中插入一個隱藏<input>欄位,該欄位就是保存在頁面端的token字元串,同時把該字元串存入session中。
2 用戶提交表單時,會一並提交該隱藏的token字元串。
3 在伺服器端,查看下是否在session中含有與該token字元串相等的字元串。
3 .1 如果有,那麼表明是第一次提交該表單,然後刪除存放於session端的token字元串,再做正常業務邏輯流程;(注意此處已經將session端的token字元串 刪除)
3.2 如果沒有,那麼表示該表單被重復提交,做非正常流程處理,可以警告提示也可以什麼也不做(第一次提交後session端的token字元串已刪除)
10. java中 TOKEN的概念
token 你可以把他當做一個令牌,當第一次訪問時設置一個令牌保存,一般我們保存在session中,當啟動令牌時,那麼就去檢測令牌是否一致,然後銷毀令牌或者重置令牌,這樣第二次再用次令牌訪問時,就會不一致了,直接提示重復提交了