年紀大了,一堆少用的東西忘了差不多,更慘的是不清楚自己忘了啥!所以有的沒的都拿來這記一記~~
<%
/**
* <p>Title: TokenSample.jsp</p>
* <p>Description: 單一頁面設置Token範例<br>
* <p>重點在於網頁refresh時,request裡的Token會是舊的!而使用submit則會是新的!
* <p>Copyright: </p>
* <p>Company: </p>
*
* @author Kirk Hsu
* @version 1.0 Created.
*
*/
%>
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%
try{
String txSn = request.getParameter("TX_SN");
String email = request.getParameter("EMAIL");
String mailType = request.getParameter("MAIL_TYPE");
System.out.println(txSn);
System.out.println(email);
System.out.println(mailType);
String tokenA = (String)session.getAttribute("token");
// refresh時這裡會取到舊的token
String tokenB = request.getParameter("token");
System.out.println("Token in session:" + tokenA);
System.out.println("Token in request:" + tokenB);
// realtime token
String token = "";
if(txSn != null && !"".equals(txSn) && email != null && !"".equals(email) &&
mailType != null && !"".equals(mailType)){
if(tokenA!=null && tokenA.equals(tokenB)){
// do something...
// 移除舊token
System.out.println("Remove token:"+tokenA+" from session.");
session.removeAttribute("token");
// 設定新token
token = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
System.out.println("Save token:"+token+" to session.");
session.setAttribute("token",token);
}else{
System.out.println("重覆送出!!");
// 注意!這裡還得補上,不然hidden裡的token就不見了!
// 那submit時,request的token就變成空的!!
// 為了讓submit時,session和request裡的token相同,
// 所以hidden裡放的token要和session裡的相同!
token = tokenA;
}
}else{
// 設定新token
token = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
System.out.println("Save token:"+token+" to session.");
session.setAttribute("token",token);
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title></title>
</head>
<body>
<form name="form1" action="TokenSample.jsp" method="post">
<fieldset>
<legend>EMAIL測試</legend>
TX_SN:<input type="text" name="TX_SN"><br>
EMAIL:<input type="text" name="EMAIL"><br>
<select name="MAIL_TYPE">
<option value=1>AAA</option>
<option value=2>BBB</option>
<option value=3>CCC</option>
</select>
<input type="hidden" name="token" value="<%=token%>"/>
<input type="submit" value="送出"/>
<br/>
</fieldset>
</form>
</body>
</html>
<%
}catch(Exception e){
e.printStackTrace();
}
%>

被折叠的 条评论
为什么被折叠?



