实验5会话管理.docx

上传人:b****7 文档编号:10423948 上传时间:2023-02-11 格式:DOCX 页数:10 大小:136.09KB
下载 相关 举报
实验5会话管理.docx_第1页
第1页 / 共10页
实验5会话管理.docx_第2页
第2页 / 共10页
实验5会话管理.docx_第3页
第3页 / 共10页
实验5会话管理.docx_第4页
第4页 / 共10页
实验5会话管理.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验5会话管理.docx

《实验5会话管理.docx》由会员分享,可在线阅读,更多相关《实验5会话管理.docx(10页珍藏版)》请在冰豆网上搜索。

实验5会话管理.docx

实验5会话管理

实验5-会话管理

实验五会话管理

一、实验目的

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

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

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

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

二、实验原理

HTTP协议是无状态的协议。

在很多情况下,Web服务器必须能够跟踪客户的状态。

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

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

当某个客户请求将一个商品放入购物车时,Web服务器必须根据发出请求的客户的身份,找到该客户的购物车,然后把商品放入其中。

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

(1)使用HttpSession对象管理会话;

(2)使用持久的Cookie对象;(3)使用URL重写机制;

}

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

LoginServlet

cn.edu.session.servlet.LoginServlet

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

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

login.jsp

login.jsp


用户名:


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

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

index1.jsp

index1.jsp

<%

Stringusername=(String)session.getAttribute("username");

if(username==null){

out.print("您还没有登录!

");

}else{

out.print("用户名:

"+username);

}

%>


index2

【步骤5】新建index2.jsp页面,代码如下:

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

index2.jsp

index2.jsp

<%

Stringusername=(String)session.getAttribute("username");

if(username==null){

out.print("您还没有登录!

");

}else{

out.print("用户名:

"+username);

}

%>


index1

图5.1login.jsp页面

图5.2重定向后页面

(二)使用Cookie跟踪会话

使用Cookie跟踪会话涉及到向客户端写入Cookie和从客户端读取Cookie。

注意UUID的用法。

【步骤1】向客户端写入Cookie对象

packagecn.edu.cookie;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.UUID;

importjavax.servlet.ServletException;

importjavax.servlet.http.Cookie;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassAddCookieextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

response.setContentType("text/html;charset=utf-8");

Stringid=UUID.randomUUID().toString();//生成一个随机字符串

Cookiecookie=newCookie("id",id);//创建Cookie对象,指定名字和值

response.addCookie(cookie);//在响应中添加Cookie对象

response.getWriter().print("已经给你发送了ID");

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

}

访问上述Servlet将向客户端写入一个Cookie,执行后可查看客户机对应目录看是否写了一个文件。

图5.3SendCookie程序的运行结果

【步骤2】从客户端读取Cookie对象

packagecn.edu.cookie;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.Cookie;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassGetCookieextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

response.setContentType("text/html;charset=utf-8");

Cookie[]cs=request.getCookies();//获取请求中的Cookie

if(cs!

=null){//如果请求中存在Cookie

for(Cookiec:

cs){//遍历所有Cookie

if(c.getName().equals("id")){//获取Cookie名字,如果Cookie名字是id

response.getWriter().print("您的ID是:

"+c.getValue());//打印Cookie值

}

}

}

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

}

图5.4GetCookie程序的运行结果

四、思考题

1.简述会话管理的常用方法有哪些?

答:

使用ServletAPI的Session机制,使用持久的Cookie对象,使用URL重写机制,使用隐藏的表单域。

2.如何使用HttpSession对象共享数据?

答:

PublicvoidsetAttribute(Stringname,Objectvalue)j将一个指定名称和值的属性绑定到会话对象上,PublicvoidgetAttribute(Stringname)返回绑定到会话上的指定名称属性值,PublicvoidEnumeratinongetAttributeName()返回所用绑定到会话上的属性名的Enumeratinon对象,PublicvoidremoveAttribute(Stringname,)从会话中删除绑定的指定名称的属性。

五、实验总结

本次实验主要是使我们了解Web服务器对客户跟踪的各种方法,掌握使用HttpSession对象跟踪会话的方法以及使用Cookie技术跟踪会话的方法和了解URL重写和隐藏表单域的方法等,相信掌握了这部分知识对以后的学习也会于很大帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1