Java cookie的使用
2016-05-11 17:50
519 查看
转自:http://www.blogjava.net/tscfengkui/archive/2011/01/21/343341.html
很感谢,让小白明白其中道理Java cookie的使用
1.cookie是什么?cookie是web应用当中非常常用的一种技术,用于储存某些特定的用户信息。
2.cookie的作用?
在用户登陆时将用户的信息存放在cookie中,用户在一定的时间中再次登陆时不需要输入用户名和密码直接跳转到下一个界面。
3.设置cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(saveTime*24*60*60);
生存周期默认时间为秒,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。
cookie.setPath("/test/test2");
设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.xml里配置的该Servlet的url-pattern路径部分) 。
response.addCookie(cookie);
4.读取cookie
该方法可以读取当前路径以及“直接父路径”的所有Cookie对象,如果没有任何Cookie的话,则返回null。如果设置了路径使用这个方法也没有值。
Cookie[] cookies = request.getCookies();
5.删除cookie
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);
设置为0为立即删除该Cookie;
cookie.setPath("/test/test2");
删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie;
response.addCookie(cookie);
下面看一个例子,这是模拟126邮箱登陆的小功能。建立一个名为AutoLoginFilter的project,包结构如下:
IndexFilter.java代码如下:
package com.bx.course;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
LoginServlet.java代码如下:
package com.bx.course;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
web.xml配置文件代码如下:
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.bx.course.IndexFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/login.html</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.bx.course.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
<welcome-file-list>
<welcome-file>main126.jsp</welcome-file>
</welcome-file-list>
login.html代码如下:
<html>
<head>
</head>
<body>
<form action="login.do">
126邮箱登录<br/><br/>
用户名:<input type="text" name="username" ><br/>
密 码:<input type="text" name="password" ><br/>
<select name="saveTime">
<option value="366">一年</option>
<option value="183">半年</option>
<option value="30">一个月</option>
<option value="7">一周</option>
</select><br/>
<input type="submit" value="登录" />
</form>
</body>
</html>
main126.jsp代码如下:
<html>
<head>
<title>测试cookie</title>
</head>
<body>
<h2>登录成功,欢迎${username}的到来 126邮箱</h2><br/>
<h3>测试cookie的功能
</body>
</html>
failure.jsp代码如下:
<body>
Login failure <br>
</body>
运行效果:
在IE地址栏中输入http://localhost:8080/LoginFilter/login.html
显示如下界面:
输入用户名:admin 密码:123456 选择保存时间,然后点击登陆,就会进入以下界面:
在保存时间内再次在IE地址栏中输入:http://localhost:8080/LoginFilter/login.html
就会直接进入登陆成功界面。如果用户名或密码不正确则会进入以下界面:
相关文章推荐
- eclipse 3.7 没有jadClipse选项
- Spring Aop实例之xml配置
- spring 的优点?什么是DI机制? 什么是AOP?
- java中spring+springMVC+Mybatis主流框架maven的pom.xml配置参考
- 实例解析Java程序中正则表达式的贪婪模式匹配
- java 获取程序执行时间
- selenium java等待alert对话框弹出,并关闭对话框
- java枚举类型enum的使用
- struts2的result中传递多个参数
- java 匿名内部类
- decimalFormat("#","##0.00") java
- Spring基础知识(4)
- Java内存区域与内存溢出异常
- Hibeinate: Could not determine type for: java.util.List, at table: address_inf, for columns: [org.hi
- java内存溢出和内存泄露
- 【java】运行java程序
- Java编程中正则表达式的用法总结
- Spring Boot + Gradle + Websocket 构建推送服务
- JDBC批处理---(java 对数据库的回滚) .
- 使用Spring进行切面(AOP)编程