首页 > 其他分享 >cookie&session使用方式

cookie&session使用方式

时间:2022-12-10 21:46:33浏览次数:52  
标签:方式 request value session Cookie cookie response

cookie:数据存在客户端(浏览器),长期储存

session:数据存在服务器,默认保存30分钟

cookie使用方式:

    1.创建cookie对象并用response发送

  Cookie cookie = new Cookie("username","zs");

  response.addCookie(cookie);

 2.获取cookie对象并遍历取出需要的数据

  Cookie[] cookies = request.getCookies();

  遍历并判断数据

 3.因为有些服务器不能识别中文,因此如果是中文需要用URL编码之后存储、获取

  编码:String value = "张三";    value = URLEncoder.encode(value, "UTF-8");

  解码:value = URLDecoder.decode(value,"UTF-8");

 1 @WebServlet("/aServlet")//发送cookie
 2 public class AServlet extends HttpServlet {
 3     @Override
 4     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 5 //发送Cookie==>创建并发送
 6 
 7         //创建Cookie对象
 8 //        Cookie cookie = new Cookie("username","zs");
 9         
10         String value = "张三";
11         //URL编码
12         value = URLEncoder.encode(value, "UTF-8");
13         System.out.println("存储数据:"+value);
14         //1.创建Cookie对象
15         Cookie cookie = new Cookie("username",value);
16         //设置存活时间   ,1周 7天
17         cookie.setMaxAge(60*60*24*7);
18         //2. 发送Cookie,response
19         response.addCookie(cookie);
20     }
@WebServlet("/bServlet")//获取cookie
public class BServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取Cookie

        //1. 获取Cookie数组
        Cookie[] cookies = request.getCookies();
        //2. 遍历数组
        for (Cookie cookie : cookies) {
            //3. 获取数据
            String name = cookie.getName();
            if("username".equals(name)){
                String value = cookie.getValue();
                //URL解码
                value = URLDecoder.decode(value,"UTF-8");
                System.out.println(name+":"+value);

                break;
            }
        }
    }

 

session使用方式:

    1.存储数据(获取session对象,使用set方法存储

 HttpSession session = request.getSession();

 session.setAttribute("String",Object);

 2.获取数据

 Object o = session.getAttribute(key);

 3.注意事项

  (1) session默认存储30分钟

  (2) 利用session.invalidate();方法销毁session

@WebServlet("/demo1")//存储session
public class SessionDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存储到Session中
        //1. 获取Session对象
        HttpSession session = request.getSession();
        System.out.println(session);
        //2. 存储数据
        session.setAttribute("username","zs");
    }
@WebServlet("/demo2")//获取session
public class SessionDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取数据,从session中
        //1. 获取Session对象
        HttpSession session = request.getSession();
        System.out.println(session);

        //2. 获取数据
        Object username = session.getAttribute("username");
        System.out.println(username);
        // 销毁
        session.invalidate();
    }

 

标签:方式,request,value,session,Cookie,cookie,response
From: https://www.cnblogs.com/changeyi/p/16972390.html

相关文章

  • Cookie分析以及案例
    Cookie分析以及案例案例:记住上一次访问时间1.需求:1.访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。 2.如果不是第一次访问,则提示:......
  • Django只session
    1.session流程2.添加sessiondefindex(request):#添加sessionrequest.session["set_session"]="defaulit001"returnHttpResponse("测试效能")设置s......
  • CBV加装饰器的三种方式
    CBV如何加装饰器#先导包:fromdjango.utils.decoratorsimportmethod_decorator#方式一,加在某个具体的方法上,格式:@method_decorator(装饰器名字)#方式二,加在类上,格式......
  • Cookie共享以及Cookie的特点和作用
    Cookie共享以及Cookie的特点和作用Cookie共享问题:假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享?默认情况下cookie不能共......
  • Django之Cookies
    一cookies简述Cookie的由来大家都知道HTTP协议是无状态的。无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请......
  • Cookie存活时间以及Cookie存储中文
    Cookie存活时间以及Cookie存储中文 cookie在浏览器中保存多长时间:1.默认情况下,当浏览器关闭后,Cookie数据被销毁2.持久化存储:setMaxAge(int seconds)......
  • S/4HANA(本地部署或云版)跟 SAP 家族系统以及非SAP系统的集成,到底什么是推荐的方式?
    笔者的知识星球,有朋友提问:S4HANA(本地部署或云版)跟SAP家族系统以及非SAP系统的集成,sap的标准/推荐做法是通过BTP还是直接连接,或者是根据目标系统分别选择?有参考链接最好了......
  • windows使用bat生成桌面快捷方式
    @echooffset"exe=Patch.exe"set"lnk=ruanjian"mshtaVBScript:Execute("Seta=CreateObject(""WScript.Shell""):Setb=a.CreateShortcut(a.SpecialFolders(""Desktop"")......
  • Code还是NoCode,哪种方式适合你?
    NoCode是一种补充技术堆栈中传统编码的工具。只有某些项目非常适合NoCode介绍NoCode是一个伟大的概念,它使非程序员无需成为软件开发人员即可构建应用程序;但是,有些人认为......
  • 冒泡排序新方式
    #Startwithalistofnumbersthatain'tsortednumbers=[0,5,1,4,2,8]#Keeptrackofwhetheranyswapsweremadeonthepreviousiteration#Ifnoswapswer......