background image

 
resetToken(request); //删除 session 中的令牌
  
  3. action 有这样的一个方法生成令牌  

 

   protected String generateToken(HttpServletRequest request) {  

 

   HttpSession session = request.getSession();

 

   try {

 

   byte id[] = session.getId().getBytes();

 

   byte now[] =

 

   new Long(System.currentTimeMillis()).toString().getBytes();

 

   MessageDigest md = MessageDigest.getInstance("MD5");

 

   md.update(id);

 

   md.update(now);

 

   return (toHex(md.digest()));

 

   } catch (IllegalStateException e) {

 

   return (null);

 

   } catch (NoSuchAlgorithmException e) {

 

   return (null);

 

   }

 

   }

 
在更新的时候防止按钮重复点击,主要是用 Session 来做判断
在 JSP/Servlet 中可以
SynchroToken.java
package com.lims.util;
import org.apache.struts.util.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import org.apache.struts.action.*;
/**
  *

Title: SynchroToken

  *
Description:

  *
Copyright: Copyright (c) 2004