Servlet学习笔记
1、sendRedirect()方法注意事项:
sendRedirect(“welcome?uname=xx&&pass=ok”);
注意点:1、welcome代表要跳转的那个servlet的url
2、servleturl名和变量之间要有?号
3、如果要传递两个以上的值,它们之间要用&号分开
4、如果传递的是中文,将得到乱码,因此需要处理一下
5、传递信息速度较快,但是只能传递字符串,不能传递对象
2、隐藏表单的操作(将某些表单的属性设置为hidden)
3、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);
(5)清空session
hs.setMaxInactiveInterval(0);
Session的应用:
(1) 网上商城中的购物车
(2) 保存登录用户的信息
(3) 将某些数据放入到Session中
(4) 防止用户非法登录到某个界面
Session的注意事项:
(1) session中属性存在的默认时间是30分钟,也可以修改其存在的时间;可以修改web.xml,也可以在程序中进行修改
(2) 上面说的30分钟不是累积时间,是用户的发呆时间
(3) 当某个浏览器访问网站时,服务器会给浏览器分配一个惟一的session id,并以此来区分不同的浏览器(即客户端)
(4) 因为session的各个属性要占用服务器的内存,因此软件公司都是在迫不得已的情况下使用。
4、Cookie
在客户端用来保存密码,或者用户名。
Cookie的作用
(1) 保存用户名、密码、在一定时间内不用登录;
(2) 记录用户访问网站的喜好(比如有无背景音乐、网页的背景颜色等等)
(3) 网站的个性化,比如定制网站的服务,内容
5、Cookie操作
(1)如何创建Cookie(在服务器端创建)
Cookie n=new Cookie(String name, String val);
(2)如何将一个Cookie添加到客户端
response.addCookie(c);
(4) 如何读取Cookie(从客户端到服务器端)
request.getCookies();
6、cookie与session的区别
(1)存储位置:cookie存在与客户机端,session存在于服务器端
(2)安全性:比较而言,cookie的安全性比session较弱
(3)网络传输量:cookie通过网络在客户端与服务器端传输。而session保存在服务器端,不需要传输。
(4)生命周期:
(a)cookie的生命周期是累计的,从创建时,就开始计时,20分钟后cookie的生命周期结束,cookie就无效
(b)session的生命周期是间隔的,从创建时,开始计时如果在20分钟内没有访问过session,则session的生命周期则重新开始计算
(c)另外,关机会造成session的生命周期结束,但是对cookie没有任何影响。
7、ServletContext的使用
(1)如何得到ServletContext实例
this.getServletContext();
(2)可以将其想象为一张表,这个和Session非常相似,每一行就是一个属性
添加属性:setAttribute(String name,Object ob);
得到值:getAttribute(String name)返回Object
删除属性:removeAttribute(String name)
(3)生命周期
ServletContext中的属性的生命周期从创建开始,到服务器关闭结束
注意事项:
存在与ServletContext中的数据会长时间的保存在服务器,会占用内存,因此建议不要向ServletContext中添加过大的数据。。。
8、ServletContext的用途
如果是涉及到不同用户共享数据,而这些数据量不大,同时又不希望写入数据库中,可以使用ServletContext来实现
(1) 网站计数器
(2) 网站在线用户的显示
(3) 简单的在线聊天系统
…….