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中,当启动令牌时,那么就去检测令牌是否一致,然后销毁令牌或者重置令牌,这样第二次再用次令牌访问时,就会不一致了,直接提示重复提交了