servlet同一用户的不同页面共享数据
2011-07-21 14:01
369 查看
第三讲:
1.同一用户的不同页面共享数据
1.1 cookie技术
什么是cookie:服务器在客户端保存用户的信息,如登录名、密码
一般保存在客户端的C:/Documents and Settings目录下
1.2 sendRedirect()转向
通过该方法将信息传送给下一个页面:比如
sendRedirect("welcom?uname=denglong");
的形式
优点:传送信息的速度比较快
缺点:它只传送送字符串,而不能传送一个对象
注意点: 1 welcome代表你要跳转的那个servlet的url
2 servlet url名和变量之间有?号
3 如果要传递两个以上的值,它们间要用&号分开
4 如果传递的是中文,那你将得到乱码,需处理一下
作用:将一个页面的信息,传递给另外的页面
1.3 隐藏表单提交(form)
形式:
<form action=login>
<input type=hidden name=a value=b>
</form>
1.4 session技术
什么是sesstion:
当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存
为该浏览器分配一个空间,该空间被这个浏览器独占。
这个空间就是session空间,该空间中的数据默认存在时间为
30min,亦可修改
应用方向:
1.网上商城中的购物车
2.保存登录用户的信息
3.将某些数据放入到session中,供同一用户的各个页面使用
4.防止用户登录到某个页面
把session看作一张表,这张表有两列。每一行就是session的一个
属性。每个属性包含两个部分,一个是该属性的名字(String),
另外一个是它的值(Object)
------------------------------------
| String | Object |
------------------------------------
| | | 属性1
------------------------------------
| | | 属性2
------------------------------------
| | | 属性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);
注意
1.session中属性存在默认时间:30min(仅指用户发呆时间,不是
累积时间),可修改
a、修改C:/tomcat/conf目录中的web.xml(也可在apps中的web.xml中添加)
<session-config>
<session-timeout>30</session-timeout>
</session-config>
b、修改程序
hs.setMaxInactiveInterval(30);//按秒计算
2.当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的
session id,并以此来区分不同的浏览器
3.因为session的各个属性要占用服务器的内存,以此软件公司都是
在迫不得已的情况下,才使用
例子:防止用户非法登录到某个页面(如直接在地址栏输入servlet的地址)
在上个例子的基础上:
LoginCl.java
view plain //req:用于获得浏览器的信息
//res:用于向浏览器返回信息(我就是服务器)
public void process(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
// res.setContentType("text/html;charset=UTF-8");//处理中文乱码
// PrintWriter pw=res.getWriter();
//接收用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("passwd");
//验证
// if(u.equals("sp")&&p.equals("123")){
if(p.equals("123")){
//将验证成功的信息,写入session
//第一步:得到session
HttpSession hs=req.getSession(true);
//修改session的存在时间
hs.setMaxInactiveInterval(20);//保存20秒
//第二步:写入属性
hs.setAttribute("pass","ok");
res.sendRedirect("welcome?uname="+u+"&upasswd="+p);
}else{
res.sendRedirect("login");//写你要到的servlet的那个url
}
}
Wel.java
view plainpublic void process(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
res.setContentType("text/html;charset=UTF-8");
//得到sesseion
HttpSession hs=req.getSession(true);
String val=(String)hs.getAttribute("pass");
//判断
if(val==null){//非法登录
try{
res.sendRedirect("login");
}catch(Exception ex){
ex.printStackTrace();
}
}
1.同一用户的不同页面共享数据
1.1 cookie技术
什么是cookie:服务器在客户端保存用户的信息,如登录名、密码
一般保存在客户端的C:/Documents and Settings目录下
1.2 sendRedirect()转向
通过该方法将信息传送给下一个页面:比如
sendRedirect("welcom?uname=denglong");
的形式
优点:传送信息的速度比较快
缺点:它只传送送字符串,而不能传送一个对象
注意点: 1 welcome代表你要跳转的那个servlet的url
2 servlet url名和变量之间有?号
3 如果要传递两个以上的值,它们间要用&号分开
4 如果传递的是中文,那你将得到乱码,需处理一下
作用:将一个页面的信息,传递给另外的页面
1.3 隐藏表单提交(form)
形式:
<form action=login>
<input type=hidden name=a value=b>
</form>
1.4 session技术
什么是sesstion:
当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存
为该浏览器分配一个空间,该空间被这个浏览器独占。
这个空间就是session空间,该空间中的数据默认存在时间为
30min,亦可修改
应用方向:
1.网上商城中的购物车
2.保存登录用户的信息
3.将某些数据放入到session中,供同一用户的各个页面使用
4.防止用户登录到某个页面
把session看作一张表,这张表有两列。每一行就是session的一个
属性。每个属性包含两个部分,一个是该属性的名字(String),
另外一个是它的值(Object)
------------------------------------
| String | Object |
------------------------------------
| | | 属性1
------------------------------------
| | | 属性2
------------------------------------
| | | 属性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);
注意
1.session中属性存在默认时间:30min(仅指用户发呆时间,不是
累积时间),可修改
a、修改C:/tomcat/conf目录中的web.xml(也可在apps中的web.xml中添加)
<session-config>
<session-timeout>30</session-timeout>
</session-config>
b、修改程序
hs.setMaxInactiveInterval(30);//按秒计算
2.当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的
session id,并以此来区分不同的浏览器
3.因为session的各个属性要占用服务器的内存,以此软件公司都是
在迫不得已的情况下,才使用
例子:防止用户非法登录到某个页面(如直接在地址栏输入servlet的地址)
在上个例子的基础上:
LoginCl.java
view plain //req:用于获得浏览器的信息
//res:用于向浏览器返回信息(我就是服务器)
public void process(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
// res.setContentType("text/html;charset=UTF-8");//处理中文乱码
// PrintWriter pw=res.getWriter();
//接收用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("passwd");
//验证
// if(u.equals("sp")&&p.equals("123")){
if(p.equals("123")){
//将验证成功的信息,写入session
//第一步:得到session
HttpSession hs=req.getSession(true);
//修改session的存在时间
hs.setMaxInactiveInterval(20);//保存20秒
//第二步:写入属性
hs.setAttribute("pass","ok");
res.sendRedirect("welcome?uname="+u+"&upasswd="+p);
}else{
res.sendRedirect("login");//写你要到的servlet的那个url
}
}
Wel.java
view plainpublic void process(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
res.setContentType("text/html;charset=UTF-8");
//得到sesseion
HttpSession hs=req.getSession(true);
String val=(String)hs.getAttribute("pass");
//判断
if(val==null){//非法登录
try{
res.sendRedirect("login");
}catch(Exception ex){
ex.printStackTrace();
}
}
相关文章推荐
- servlet学习笔记2——同一用户的不同页面共享数据
- 使用servlet实现同一用户的不同页面共享数据
- servlet第3讲(中集)----同一用户的不同页面共享数据
- servlet同一用户不同页面共享数据
- 【2015/4/18】servlet学习笔记4--同一用户怎么共享不同页面的数据。
- servlet学习---第三天(同一用户的不同页面数据共享)
- JSP(3):servlet 用同一用户的不同页面共享数据(session)
- Servlet同一用户的不同页面共享数据
- servlet同一用户的不同页面共享数据
- servlet小总结3----同一用户的不同页面的共享数据的四种方法,及Servlet中操作数据库时等
- servlet第3讲(上集)----同一用户的不同页面共享数据
- 同一用户的不同页面共享数据
- 同一用户的不同页面共享数据
- Servlet学习之三不同页面数据共享
- 同一用户的不同页面共享数据(四)
- 同一用户的不同页面共享数据的四种技术(一)
- 同一用户在不同用户共享数据servlet
- (第5讲)同一用户的不同页面共享数据的四种方法
- jsp在不同页面或者用户之间共享数据
- Servlet之Session--不同用户页面共享