session、cookie、隐藏域、url参数传递四种会话及跟踪方式
1.Session
HttpSession session = request.getSession();
session.setAttribute("name", "zhangsan");
session.setAttribute("pwd", "aaa");
String name = (String) session.getAttribute("name");
2.cookie:
? 設置 Cookie(默認只對當前瀏覽器有效)
Cookie c1 = new Cookie(“name”,”value”);
c1.setMaxAge(60);//如果要Cookie長留在本機,設置cookie最大保存時間
response.addCookie(c1);
Cookie是通過服務器端設置到客戶端上去的——response
如果要在服務器端取得cookie?request.getCookie()
//創建Cookie
Cookie cookie = new Cookie("name", "zhangsan");
//設置Cookie的超時時間
cookie.setMaxAge(24 * 60 * 60 *60);
//把Cookie發送到客戶端
response.addCookie(cookie);
//得到客戶端發送的Cookie
Cookie [] cookies = request.getCookies();
for(int i=0; i <cookies.length; i++) {
Cookie temp = cookies[i];
String key = temp.getName();
String value = temp.getValue();
}
3.隱藏表單域
隱藏域:<input type=”hidden” name=”” value=””>
將內容隱藏起來,使用戶不能修改,之后隨表單一起提交到服務器上顯示
地址重寫:
通過地址重寫,可以將內容傳遞到服務器端——服務器端只認HTTP協議,而不管接受的內容是以何種形式傳送過來的
如果要傳遞多個參數呢?
*.jsp?name=darkness&password=111
<input type="hidden" name="name" value="zhangsan" />
request.getParameter("name");
4.Url重寫
問號傳參
LoginServlet?username=zhangsan&pwd=123
String name = request.getParameter("username");
String pwd =request.getPareameter("pwd");
內部跳轉:
LoginServlet
request.getRequestDispatcher("index.jsp").forward(request, resposne);
外部跳轉:
response.sendRedirect("index.jsp");
內部跳轉是一次請求和一次響應
外部跳轉是兩次請求和兩次響應
ServletContext:Servlet上下文對象
它是一個公共區域,可以被所有的客戶端共享
setAttribute():向公共區域里放入數據
getAttribute():從公共區域里取數據
轉載于:https://blog.51cto.com/lya041/660504
總結
以上是生活随笔為你收集整理的session、cookie、隐藏域、url参数传递四种会话及跟踪方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: #抵抗3#(#Resistance 3#
- 下一篇: tac