Javaweb 会话跟踪学习记录(4)—隐藏表单域

Javaweb 会话跟踪学习记录(4)—隐藏表单域

  利用 Form 表单的隐藏表单域,可以在完全脱离浏览器对 Cookie 的使用限制,并且在用户无法从页面显示看到隐藏标识的情况下,将标识随请求一起传送给服务器处理,从而实现会话的跟踪。
  示例:在 Form 表单中定义隐藏域

"xx" method="post"> "hidden" name=" userID " value="10010"> "submit" value=" 提交 ">

  在服务器端通过 HttpServletRequest

String flag = request.getParameter("userID");

  演示:
创建FormDemo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>



"UTF-8">
Insert title here



	
"FormServlet" method="post"> "hidden" name="userId" value="12">
用户名:"text" name="userName" value="aa">
"submit" value="提交">

创建FormServlet

package com;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class FormServlet
 */
@WebServlet("/FormServlet")
public class FormServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public FormServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("用户id:" + request.getParameter("userId"));
		System.out.println("用户姓名:" + request.getParameter("userName"));
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

运行
Javaweb 会话跟踪学习记录(4)—隐藏表单域_第1张图片
提交查看控制台
Javaweb 会话跟踪学习记录(4)—隐藏表单域_第2张图片
  会话跟踪总结

  • HTTP 协议即是一种无状态协议,采用“ 连接-请求-应答-关闭连接” 模式,不会一直与客户端保持联机的状态。
  • 会话跟踪技术是一种在客户端与服务器间保持 HTTP 状态的解决方案。
  • 会话跟踪技术的解决方案主要有 Cookie 技术、Session 技术、URL 重写技术、隐藏表单域技术。
  • Cookie 是指某些网站为了辨别用户身份而储存在用户终端上的文本信息。
  • 通过 Cookie,服务器在接收到来自客户端浏览器的请求时,能够通过分析请求头的内容而得到客户端特有的信息,从而动态生成与该客户端相对应的内容。
  • Session 技术是指使用 HttpSession 对象实现会话跟踪的技术 。
  • Session 技术用来保存单个用户访问时的信息,是识别和维护具体某个用户的主要方式。
  • HttpSession 对象会在用户第一次访问服务器时由容器创建,在用户调用其失效方法或超过其最大不活动时间时失效。在此期间,用户与服务器之间的任意多次请求都属于一次会话生命周期。
  • URL 重写是指服务器程序对接收的 URL 请求重新写成网站可以处理的另一个URL 的过程。
  • URL 重写技术是实现动态网站会话跟踪的重要保障。在实际应用中,当不能确定客户端浏览器是否支持 Cookie 的情况下,使用 URL 重写技术可以对请求的URL 地址追加会话标识,从而实现用户的会话跟踪功能。
  • 利用 Form 表单的隐藏表单域,可以在完全脱离浏览器对 Cookie 的使用限制,并且在用户无法从页面显示看到隐藏标识的情况下,将标识随请求一起传送给服务器处理,从而实现会话的跟踪。

你可能感兴趣的:(Javaweb 会话跟踪学习记录(4)—隐藏表单域)