cookie和session的使用
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" session="true"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>cookie和session的使用</title></head>
<body>
<a href="<%=request.getContextPath() %>/setservlet?value=电视">电视</a>
<a href="<%=request.getContextPath() %>/setservlet?value=手机">手机</a>
<a href="<%=request.getContextPath() %>/buyservlet">购买</a>
</body>
</html>
package com.taxue.session;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* http://127.0.0.1:8080/jsp/buyservlet
* @author wqk
*/
public class BuyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
HttpSession session = request.getSession();
String value = (String) session.getAttribute("value");
response.getWriter().write("你要付款的是"+value);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
package com.taxue.session;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* http://127.0.0.1:8080/jsp/setservlet
* @author wqk
*/
public class SetServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String value = request.getParameter("value");
value = new String(value.getBytes("iso8859-1"), "utf-8");
HttpSession session = request.getSession();
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setPath(response.getContentType());
cookie.setMaxAge(1000*60);
response.addCookie(cookie);
session.setAttribute("value", value);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
防止表单重复提交
一页面控制
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" session="true"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>js防止表单多次提交</title></head>
<script type="text/javascript">
var isNotSub =true;
function canSub(){
if(isNotSub){
isNotSub =false;
return false;
}else{
alert("请不要重复提交!!!");
return false;
}
}
</script>
<body>
<form action="${pageContext.request.contextPath}/submitform" method="POST" οnsubmit="return canSub()">
用户名:<input type="text" name="username" value="" /><input type="submit" value="注册"/>
</form>
</body>
</html>
二session控制
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" session="true"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>js防止表单多次提交</title></head>
<body>
<%
Random r = new Random();
int sessionvalue=r.nextInt();
session.setAttribute("sessionvalue", sessionvalue+"");
%>
<form action="${pageContext.request.contextPath}/submitform" method="POST"">
用户名:<input type="text" name="username" value="" />
<input type="hidden" name="sessionvalue" value="<%=sessionvalue %>">
<input type="submit" value="注册"/>
</form>
</body>
</html>
package com.taxue;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 防止表单重复提交
* 127.0.0.1:8080/jsp/submitform
* @author wqk
*/
public class SubmitForm extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
try {
Thread.sleep(10000); //测并发访问
} catch (InterruptedException e) {
e.printStackTrace();
}
String username = request.getParameter("username");
//form value
String fv = request.getParameter("sessionvalue");
//session value
String sv = (String)request.getSession().getAttribute("sessionvalue");
if(sv != null && !"".equals(sv) && fv.equals(sv)){
request.getSession().removeAttribute("sessionvalue");
System.out.println("注册者:"+username);
}else{
response.getWriter().write("不要重复提交");
}
}
}