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

1,cookie//cookie是保持的客户端的,一般用于用户登录,保持用户登录的信息,第二次访问的时候可以直接
通过cookie验证登录,以及权限问题,当然cookie是不安全的,一般是权限验证不用cookie。cookie,必须自己设置时间
如果不设置那么客户端就不能生成cookie,当cookie过期的时候会自动失效,例如:网站两周内不用在登陆
就是用cookie实现的,cookie有一个方法是:setMaxAge(int expiry) ,那么这里就是setMaxAge(14*24*3600) ;
cooke是按照秒计算的,两周14天,一天24小时,24小时 一小时是;3600秒

 

2,session//session是一次会话,session默认时间是30分钟,session把接收的参数setattribute(key value);
那么session是怎么得到的呢?
通过HttpSession session =request.getSession();//类似于实例化
session既然用默认时间,那么这里也可以自己设置,也可以修改tomcat服务器的config目录下面的web.xml文件
找到session-config修改,30分钟时之的是用户的发呆时间,而不是累积时间。
第二种就是自己的session的一个方法session.setMaxInactiveInterval(int interval);也是按照秒计算的。
具体方法可以参照帮助文档。
在其他的页面getattribute(key);只要浏览器不关闭你可以在所有的页面传递;
功能:

(1)网站的购物车,我在不同页面购买的商品要放在,我的另一个页面的购物篮中,那么我们就用session
共享,那么购物篮是怎么判断就是我在不同页面买的商品呢?session是通过session id判断的,一次会话服务器就会生成一个sessionid
(2)保存用户信息,有些页面访问,必须要用户登录,在这里就可以判断,防止用户非法登录。
在共享的页面通过session.getattribute();得到key,就行;假如你判断用户到这个页面用没有登录,你可以知道
if(session=null){
 request.sendRedirect();//写上你要跳转的路径
}

(3)大型网站做的注销功能,就是让session失效,调用的是invalidate()方法的。


3,sendRedirect();页面的重定向(跳转),get传参sendRedirect(welcom?name=laofeng&password=laofeng);
优点:传递信息的速度比较快,也比较简单。
如果你在接受参数并显示,那么你还是用request.getparameter();得到数据;然后再网页显示,
PrintWriter   out   =   response.getWriter();  
out.print();打印;现在很少用这个。在开发中你就看到他的弱点了。
记住接收客户端传递的参数,永远用request.getparameter();返回时一个字符串String类型的。
缺点:只能传递字符串,而不能传递对象;如果你共享的是一个对象的话,那么这个对象就不好使用了。传递字符的时候
记住要处理字符编码问题:

 

 

4,隐藏标题from,hidden属性;如果你hidden 那么久 那么在网页中是显示不出来的,但是你可以把要提交的数据提交到
服务端
<input type="hidden" name="myhiddem" /> 这样你就可以通过from控件把数据传递到服务器,比方说修改数据,需要告诉数据库
修改那条就,我们这里传递id,来修改id,这个id是也是点击修改时候传递的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值