JSP状态管理
2017-01-17 16:36
405 查看
http协议的无状态性:
无状态指的是当浏览器向服务端发送请求时,服务器响应请求。当同一浏览器再次向服务端发送请求时,服务器不知道它就是刚才的浏览器。简单地说,服务器不会记住你。
保存用户状态的两大机制:Session和Cookie
Cookie是web服务器保存在客户端的一系列文本信息
典型应用一:判断注册用户是否已经登陆网站
典型应用二:”购物车”的处理
创建与使用Cookie:
a).创建Cookie:
Cookie newCookie=new Cookie(String key,Object value);
b).写入Cookie对象:
response.addCookie(newCookie);
c).读取Cookie对象:
Cookie[] cookies = request.getCookies();
d).设置cookie的有效期,以秒为单位:
void setMaxAge(int expiry)
e).cookie创建后,对cookie进行赋值:
void setValue(String value)
f).获取cookie的名称:
String getName()
g).获取cookie的值:
String getValue()
h).获取cookie的有效时间,以秒为单位:
int getMaxAge()
Cookie在登录中的应用:
使用URLEncoder,先导入java.net.*
servlet:
jsp:
无状态指的是当浏览器向服务端发送请求时,服务器响应请求。当同一浏览器再次向服务端发送请求时,服务器不知道它就是刚才的浏览器。简单地说,服务器不会记住你。
保存用户状态的两大机制:Session和Cookie
Cookie是web服务器保存在客户端的一系列文本信息
典型应用一:判断注册用户是否已经登陆网站
典型应用二:”购物车”的处理
创建与使用Cookie:
a).创建Cookie:
Cookie newCookie=new Cookie(String key,Object value);
b).写入Cookie对象:
response.addCookie(newCookie);
c).读取Cookie对象:
Cookie[] cookies = request.getCookies();
d).设置cookie的有效期,以秒为单位:
void setMaxAge(int expiry)
e).cookie创建后,对cookie进行赋值:
void setValue(String value)
f).获取cookie的名称:
String getName()
g).获取cookie的值:
String getValue()
h).获取cookie的有效时间,以秒为单位:
int getMaxAge()
Cookie在登录中的应用:
使用URLEncoder,先导入java.net.*
servlet:
request.setCharacterEncoding("utf-8");//首先判断用户是否选择了记住登陆状态 String[] isUseCookies=request.getParameterValues("isUseCookie"); if(isUseCookies!=null&&isUseCookies.length>0) { String username=URLEncoder.encode(request.getParameter("username"),"utf-8");//把用户名和密码保存在Cookie对象里面 String password=URLEncoder.encode(request.getParameter("password"),"utf-8");//使用URLEncoder解决无法在Cookie中保存中文字符串的问题 Cookie usernameCookie=new Cookie("username",username); Cookie passwordCookie=new Cookie("password",password); usernameCookie.setMaxAge(864000); passwordCookie.setMaxAge(864000);//设置最大期限为10天 response.addCookie(usernameCookie); response.addCookie(passwordCookie); } else { Cookie[] cookies=request.getCookies(); if(cookies!=null&&cookies.length>0) { for(Cookie c:cookies) { if(c.getName().equals("username")||c.getName().equals("password")) { c.setMaxAge(0);//设置Cookie失效 response.addCookie(c);//重新保存 } } } }
jsp:
<body> <% request.setCharacterEncoding("utf-8"); String username=""; String password=""; Cookie[] cookies=request.getCookies(); if(cookies!=null&&cookies.length>0) { for(Cookie c:cookies) { if(c.getName().equals("username")) { username=URLDecoder.decode(c.getValue(),"utf-8"); } if(c.getName().equals("password")) { password=URLDecoder.decode(c.getValue(),"utf-8"); } } } %> <div> <form action="index.jsp" method="post"> <input name="username" type="text" value="<%=username%>"/> <input name="password" type="password" value="<%=password%>"/><br /> <input name="" type="submit" value="登陆"/><br /> <input id="useCookie" name="isUseCookie" type="checkbox" value=""/>记住登陆状态 </form> </div> </body>
相关文章推荐
- JSP状态管理 http协议的无状态性 Cookie简介
- JSP状态管理(四)
- JSP状态管理
- JSP状态管理
- JSP状态管理--第十四天
- jsp会话状态管理
- jsp04状态管理
- Jsp状态管理
- Jsp状态管理、Cookie与session
- Jsp状态管理
- Jsp状态管理
- JSP状态管理 及 Cookie实例
- Java遇见HTML——JSP篇之JSP状态管理
- JSP状态管理-6.16
- 【jsp笔记】状态管理
- 【JavaWeb】(4)JSP状态管理
- jsp状态管理(Cookie Session)学习笔记整理
- 【JSP笔记】第六章 JSP状态管理
- 四、JSP之JSP状态管理
- JSP状态管理的简单介绍