同一用户的不同页面共享数据的方法

方法一  Cookie

服务器在客户端保存用户的信息,并在需要的时候从客户端(本机)读取用户信息

功能: (1) 保存用户名和密码,在一定时间不需重新登录

(2) 记录用户访问网站的喜好

(3) 网站的个性化

方法二  sendRedirect跳转(保密性不好,传递的信息会在url上显示)

实例:sendRedirect("wel?uname=ksyoon&pass=123");

注意点:(1)wel代表要跳转到的该Servlet的<url-pattern></url-pattern>内容;

(2)Servlet的url与变量之间用?连接;

(3)若要传递两个或两个以上变量用&连接;

(4)若要传递的数据是中文,会得到乱码;

修改LoginCl.java代码,实现当用户信息填写正确时,跳转到欢迎页面并显示用户名和密码

修改Wel.java代码,获取用户名并在页面显示

在浏览器上访问http:127.0.0.1:8080/myweb-site/login,用户信息填写正确后,跳转到欢迎页面,显示如下:

 

方法三  session技术

session的各个属性会占用服务器的内存,因此软件公司在迫不得已的情况下才使用session

应用: (1) 网上商城中的购物车 (2) 保存登录用户的信息 (3)防止用户非法登录到某个页面

(4)将某些数据放在session中,供同一用户的各个页面使用

常用方法:

(1)获得session,若没有则创建session    HttpSession hs = req.getSession(true);

(2)向session中添加属性      hs.setAttribute(String name,Object value);

(3)从session中获得某个属性   String name= hs.getAttribute(String name);

(4)从session中删除某个属性    hs.removeAttribute(String name);

(5)设置session存在时间,默认存在时间为30min,此方法中时间单位s     hs.setMaxInactiveInterval(int time);  

思路:

(1)在SessionTest1.java中新建session属性,并设置其存在时间,在SessionTest2.java中访问session属性,并测试在存在时间之外访问session是否能读取其属性值

 

(2)分别进行Servlet部署,如下:

 

(3)开启tomcat,在浏览器上访问http:127.0.0.1:8080/myweb-site/sessionTest1,页面效果如下:

 

在设置的session存在时间10s内,在同个页面上将sessionTest1改成sessionTest2,页面效果如下:

发现:两个页面效果中sessionId一样,在10s不做任何刷新操作的情况下,再次访问sessionTest2,页面效果如下:

 

 

方法四  隐藏表单提交(form)

案例思路:分别新建两个java文件,一个命名为HiddenForm1(隐藏用户的性别信息),另一个命名为HiddenForm2(文字输出用户性别信息),

代码如下:

分别进行Servlet部署

开启tomcat,在浏览器上访问http://127.0.0.1:8080/myweb-site/hiddenForm1,页面显示如下:

 

随意填写用户信息后,点击login,页面显示如下:

若想通过传输变量到用户性别,只需添加或修改HiddenForm1的代码

String s = "女";

pw.println("<input type=hidden name=sex value="+s+">");

最终页面显示:

 

posted @ 2018-07-23 20:52  KSYOON  阅读(782)  评论(0编辑  收藏  举报