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

Cookie:服务器在客户端保存用户的信息,比如登录名,密码等,就是cookie.
用途:
1.保存用户名、密码,在一定时间不用重新登录。
2.记录用户访问网站的喜好(比如有无背景音乐)。
3.网站的个性化。

sendRedirct()方法:通过该方法将信息传送到下一个页面。
sendRedirct("welcome?uname=shunping");的形式:
注意点:1.welcome代表你要跳转的那个servlet的url
2.servlet url名和变量之间有?号
3.如要传递两个以上的值,它们间要用&号分开。
4.如果要传递的是中文,那你将得到乱码,需要处理一下。

通过sendRedirect()可以将一个页面信息,传递给另外的页面.
例子:登陆判断页面添加代码如下
 //接收用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("password");     
//跳转到welcome
res.sendRedirect("welcome?uname="+u+"&upass="+p);
welcome页面添加代码如下:
//得到从loginCl传递的用户名   
String u=req.getParameter("uname");
String p=req.getParameter("upass");
//输出到网页
//中文乱码处理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.print("欢迎登陆"+u+" pass="+p);

通过隐藏表单来共享数据
形式如下:
<form action=login>
<input type=hidden name=a value=b>
</form>

session:当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,给空间被这个浏览器独占。这个空间就是session空间。默认保存时间30min.
用途:
1.网上商城中的购物车
2.保存登陆用户的信息
3.将某些数据放到session中供同一用户的各个页面使用
4.防止用户非法登陆到某个页面
......
可以把session看做一张表,它有两列,一列是属性名,一列是属性值。
session的使用:
1.得到session
HttpSession hs=request.getSession(true);
2.向session添加属性
hs.setAttribute(String name,Object val);
3.从session得到某个属性
String name=hs.getAttribute(String name);
4.从session删除某个属性
hs.removeAttribute(String name);
session处理位置,在xml文件中:
<session-config>
  <session-timeout>30</session-timeout>
</session-config>
注意:
1.当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的session id,以此来区别不同的浏览器。
2.它的各个属性都会占用内存,所以迫不得已时才用。

例子:
防止非法用户登陆
loginCl.java添加代码
 //将验证成功的信息写入session
 //得得session
 HttpSession hs=req.getSession(true);
 //修改session存在时间
 hs.setMaxInactiveInterval(20);
 //将属性和值写入session
 hs.setAttribute("pass","ok");
welcome.java添加代码
         //得到session
  HttpSession hs=req.getSession(true);
  String val=(String)hs.getAttribute("pass");
  //判断
  if(val==null)
  {
   try
   {
    //非法登陆
       res.sendRedirect("login");
   }catch(Exception e)
   {
    e.printStackTrace();
   }
   
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值