您的位置:首页 > Web前端 > JavaScript

jsp页面传递参数的几种方法总结以及一个在线聊天案例

2015-03-29 22:46 561 查看
当我们在网站上注册的时候,假设不写入数据库的情况下,我们需要把用户名和密码传递到下一个页面,我们常用的方法就是request.getParameter(“name”);但是这种方法有一个缺点,就是我们需要把这个参数的值,从这个页面继续往下面的页面传递时候,另外一个页面接收不到的。因为http是一种无状态的协议

request 参数转发,只有一次有效。无法长时间保存。

还有一种方法就是cookie,cookie 写在客户端,

用cookie传值先要设置cookie

[code]Cookie c=new Cookie("uname",uname);
c.setMaxAge(60*60*24);  // 设置过期时间
response.addCookie(c);   //添加cookie


然后下一个页面取出cookie中我们需要的值String uname=”“;

[code]    Cookie[] cs=request.getCookies();  //返回一个数组  
        for(Cookie c:cs){
            if("uname".equals(c.getName())){   // 键值对的形式储存
                uname=c.getValue();
            }
        }


还有一种是用session取值

session取值我们需要先session.setAttribute(“name”, name);

然后下一个页面取得它的值

(String)session.getAttribute(“uname”)

因为得到的值是Object类型的,所有我们需要强制类型转换。

值得注意的是,session与服务器是一对一的关系,当session的创建时,第一次请求服务器,由服务器创建了编号,将编号以cookie回传给客户端。在session没有销毁之前,都是这个编号,所以能将值一直传递下去。

那么,session怎么销毁呢?

1、关闭浏览器一段时间之后,session会销毁

2、session.invalidate(); 强制销毁。但是此方法不一定马上就销毁了。是不值得常用和依赖的方法。还有一种就是session.removeAttribute(“”);移除这个session

3、关闭服务器,这是直接了当的方法了。

还有一个叫Application对象,特别之处就在于服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都时同一个,直到服务器关闭。但是与Session对象不同的时,所有客户的Application对象都时同一个,即所有客户共享这个内置的Application对象。所以我们可以不连接数据库用它来做一个在线聊天的小页面。

下面是效果图:

能实现局域网内的不同用户名的用户进行在线交流。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: