2024年4月28日发(作者:)

实验五 会话管理

一、实验目的

1。 了解Web服务器对客户跟踪的各种方法;

2. 重点掌握使用HttpSession对象跟踪会话的方法;

3。 掌握使用Cookie技术跟踪会话的方法;

4。 了解URL重写和隐藏表单域的方法。

二、实验原理

HTTP协议是无状态的协议。在很多情况下,Web服务器必须能够跟踪客户的状态。比如,

对于一个购物网站,在一个时刻可能有多个客户购物,Web服务器必须能够区分不同的客户。

一般情况下,Web服务器为每个客户配置了虚拟的购物车(ShoppingCart)。当某个客户请求将

一个商品放入购物车时,Web服务器必须根据发出请求的客户的身份,找到该客户的购物车,

然后把商品放入其中。

Web服务器跟踪客户的状态通常有4种方法:

(1)使用HttpSession对象管理会话;(2)使用持久的Cookie对象;(3)使用URL重写机制;

(4)使用隐藏的表单域。

三、实验内容与步骤

(一) 使用HttpSession对象管理会话。

【步骤1】建立Servlet对象,代码如下:

package n。servlet;

import java。ption;

import java。riter;

import javax。servlet。ServletException;

import javax。。HttpServlet;

import rvletRequest;

import t。http。HttpServletResponse;

import t。ssion;

public class LoginServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

racterEncoding(”utf-8”);

response。setContentType(”text/html;charset=utf—8”);

String username = ameter(”username");

if(username。equalsIgnoreCase("zhangsan”)) {

response。getWriter().print(”用户名或密码错误!");

} else {

HttpSession session = request。getSession();

ribute(”username", username);

response。sendRedirect("/prac05_session/index1。jsp”);

}

}

}

【步骤2】修改web。xml文件,添加代码如下:

〈servlet〉

〈servlet—name>LoginServlet〈/servlet-name〉

〈servlet-class〉n。ervlet〈/servlet—class〉

〈/servlet〉

【步骤3】新建页面,代码如下:

<%@ page language="java” import=”java

util

。*

” pageEncoding=”UTF-8"%>

<!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN">

〈head〉

〈body>

〈h1>login。jsp


〈form action="/prac05_session/sessionLoginServlet" method="post">

用户名:

〈/form>

〈/body〉

【步骤4】新建index1。jsp页面,代码如下:

〈%@ page language="java" import=”java

util

*" pageEncoding="UTF—8”%〉

〈!DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4.01 Transitional//EN">

〈title〉〈/title>

〈h1>〈/h1>

<%

String username = (String)session。getAttribute(”username”);