session、cookie基础

一、 session的简单使用

package com.servlet.sessoin;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/*
 *  session技术的学习和使用
 *   //问题:
 *    一个用户的不同请求处理的数据共享怎么办?
 *   //解决:
 *    使用session技术
 *   //原理:
 *    用户第一次访问服务器,服务器会创建一个对象给此用户,并将该session对象的JSESSIONID
 *    使用cookie技术存储到浏览器中,保证用户的其他请求能够获取同一个session对象,
 *    也保证了不同请求能够获取到共享的数据。
 *  
 *   //特点:
 *    (1)..存储在服务器端    (2)..由服务器创建
 *    (3)..依赖cookie技术  (4)..时效一次回话(关闭浏览器消失) 
 *    (5)..默认存储时间30min
 *   
 *   //作用
 *    ..解决了一个用户不同请求处理的数据共享问题。
 *   //使用
 *    (1)---创建session对象/获取session对象
 *     Httpsession hs = request.getSession();
 *     a、如果请求中拥有session的标识符也就是JSESSIONID则返回其对应的ID
 *     b、如果请求中没有session的标识符也就是JSESSIONID则创建新的session对象,
 *           并将其sessionid作为cookie数据存储到浏览器内存中。
 *     c、如果session对象时效了,也会重新创建一个session对象,并将其JSESSIONID存储到浏览器的内存中
 *    (2)设置session存储时间
 *     hs.setMaxInactiveInterval(int seconds);
 *     注意:默认30分钟。
 *      在指定的之间内没有使用则销毁,如果使用了则重新计时。
 *    (3)设置session强制失效
 *     hs.invalidate();
 *     比如点击退出时。会强制失效。
 *   //注意
 *    JSESSIONID存储在了Cookie的临时存储空间中,浏览器关闭失效。
 * 
 */
 public class Session_01介绍原理特点使用 extends HttpServlet {
 private static final long serialVersionUID = 1L;
 @SuppressWarnings("unused")
 protected void doGet(HttpServletRequest request, HttpServletResponse
   response)throws ServletException, IOException {
  //设置请求编码格式
   request.setCharacterEncoding("utf-8");
  //设置响应编码格式
   response.setContentType("text/html;charset= utf-8");
  //获取请求信息
   String name = "张三";
  //处理请求信息
   //创建session对象(既是创建也是获取,就看请求中有没有sessionid)
    HttpSession hs = request.getSession();
   //设置session的存储时间
    //hs.setMaxInactiveInterval(5);
    System.out.println(hs.getId());
   //设置session强制失效
    //hs.invalidate();
    
  //响应处理结果
    //直接响应
    response.getWriter().println("session学习");
    //请求转发(用request)
    //重定向(只能用session)
  
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse
   response)throws ServletException, IOException {
   doGet(request, response);
//  System.out.println("回话创建时间:"+hs.getCreationTime());
//  System.out.println(hs.getMaxInactiveInterval());
//  hs.invalidate();
//  doGet(request, response);
	}
}

二、cookie学习

package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/cookieservlet1")
/* Cookie学习:
 *   作用:解决了发送的不同请求的数据共享问题。
 *   使用:
 *    Cookie的创建及存储:
 *      //创建对象Cookie
 *       Cookie c = new Cookie("mouse","thinkpad");
 *       Cookie c = new Cookie(String name,String value);
 *      设置cookie(可选)
 *       设置有效期
 *       c2.setMaxAge(10000);
 *       设置有效路径
 *       c2.setPath("/Cookie/abc");
 *      响应Cookie对象给客户端
 *       response.addCookie(c);
 *   注意:
 *    一个cookie对象存储一条数据。
 *    多条数据创建多个cookie对象。
 *   特点:
 *    浏览器端的数据技术.
 *    存储的数据说明在服务器端。
 *    临时存储:不设置时间,存储在浏览器中的运行内存中,浏览器关闭即失效。
 *    定时存储:设置有效期,存储在客户端的硬盘中,在有效期内符合路径要求的请求都会附带该信息。
 *    默认信息存储好之后,每次请求都会附带,除非设置一条有效路径。
 */
public class CookieServlet1 extends HttpServlet {
 	private static final long serialVersionUID = 1L;
 	protected void doGet(HttpServletRequest request, HttpServletResponse
   	response)throws ServletException, IOException {
  		System.out.println("进入cookieservlet1:");
  		//设置请求编码格式
  	request.setCharacterEncoding("utf-8");
  	//设置响应编码格式
  	response.setContentType("text/html;charset=utf-8");
 	 //获取请求信息
  	//处理请求信息
  	//响应处理结果
  	 //使用Cookie进行浏览器端的数据存储
   	 //创建Cookie对象
   	 Cookie c = new Cookie("mouse","thinkpad");
  	  Cookie c2 = new Cookie("key3","value");
   	 //设置cookic有效期
   	 c2.setMaxAge(100);
    	//设置有效路径
  	  c2.setPath("/Cookie/cg");
   	 //响应cookie信息
  	  response.addCookie(c);
  	  response.addCookie(c2);
    	//直接相应
  	 response.getWriter().println("Cookie学习!");
 	  //请求转发
  	 //重定向
	 }
	 protected void doPost(HttpServletRequest 		request, HttpServletResponse
   	 	response)throws ServletException, IOException {
 		 doGet(request, response);
	 }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值