Session机制代码实现

session机制代码实现

public class SessionA extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置请求编码格式
		request.setCharacterEncoding("utf-8");
		//设置响应编码格式
		response.setContentType("text/html;charset=utf-8");
		//获取请求信息
		String uname=request.getParameter("uname");
		//处理请求信息
		HttpSession session=request.getSession();
		session.setAttribute("uname",uname);
		System.out.println("SessionA"+uname);
		System.out.println(session.getId());
		//响应处理结果
			//重定向
			response.sendRedirect("b");
	}
}
public class SessionB extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置请求编码格式
		request.setCharacterEncoding("utf-8");
		//设置响应编码格式
		response.setContentType("text/html;charset=utf-8");
		//获取请求信息
			//创建session对象
			HttpSession session=request.getSession();
			//获取A处理的数据
			String  uname=(String) session.getAttribute("uname");
			System.out.println("SessionB"+uname);
		//处理请求信息
	}
}

	

实现步骤 创建两个servlet 分别是SessionA和SessionB url分别为/a和/b SessionA中重定向到SessionB 请求/a时附带参数 利用session技术在SessionB中拿到参数 从而解决了重定向技术中的数据流转的获取问题 以下是实现结果

在这里插入图片描述

在这里插入图片描述

]

在这里插入图片描述

可以看到 在请求/a时 服务器创建了一个session对象 并把session的ID以cookie的形式发送给客户端浏览器(可在图2的响应头中看到) 而重定向请求/b时 浏览器带上了这个session-ID的cookie发送给服务器(具体可见图3的请求头) 服务器根据这个ID找到对应的session对象 而不用创建新的session对象了 后台根据session对象拿到了uname数据

发布了39 篇原创文章 · 获赞 19 · 访问量 1497

猜你喜欢

转载自blog.csdn.net/weixin_44222272/article/details/104467860