java之 Cookie&Session
2021-03-05 05:27
标签:不同 prot 创建 技术 throws let 数据保存 文件中 val cookie 概念:客户端会话技术,将数据保存到客户端 常见方法: cookieservlet1代码: cookieservlet2代码: 服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。 常用方法: Cookie 和Session 不同的地方是 cookie是存在于客户端,而session是存在于服务器上。 如果客户端关闭后,服务端不关闭,session需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。 由此可见,session是依赖于cookie的。 当服务器关闭后,会将session序列化到硬盘里面,重启的时候seesion文件会转换为内存中的session对象。 session默认的过期时间是30秒,如果需要设置可以到tomcat/conf/web.xml文件里面修改。 java之 Cookie&Session 标签:不同 prot 创建 技术 throws let 数据保存 文件中 val 原文地址:https://www.cnblogs.com/0x7e/p/14331491.html0x01、Cookie
1. 创建Cookie对象,绑定数据
new Cookie(String name, String value)
2. 发送Cookie对象
response.addCookie(Cookie cookie)
3. 获取Cookie,拿到数据
Cookie[] request.getCookies()
4. setMaxAge(int seconds)
正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效
负数:默认值
零:删除cookie信息
5. setPath(String path):设置cookie的获取范围。默认情况下,设置当前的虚拟目录
* 如果要共享,则可以将path设置为"/",cookie默认情况下不共享
6. setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
@WebServlet("/CookieServlet")
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie = new Cookie("name","hello");
cookie.setMaxAge(10); //cookie 存储10秒
cookie.setPath("/"); //设置共享
response.addCookie(cookie);
}
@WebServlet("/CookieServlet2")
public class CookieServlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
System.out.println("cookie名"+name);
System.out.println("cookie值"+value);
}
}
}
0x02、Session
request.getSession() :获取session对象
session方法:
Object getAttribute(String name)
void setAttribute(String name, Object value)
void removeAttribute(String name)
@WebServlet("/CookieServlet")
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(); //获取session对象
Cookie cookie = new Cookie("JSESSIONID",session.getId()); //cookie传入session的值
cookie.setMaxAge(10); //cookie 存储10秒
cookie.setPath("/"); //设置共享
response.addCookie(cookie);
}
}
文章标题:java之 Cookie&Session
文章链接:http://soscw.com/index.php/essay/60300.html