首页 > 编程语言 >day103- javaweb-cookie,session

day103- javaweb-cookie,session

时间:2023-05-22 16:14:34浏览次数:41  
标签:javaweb resp req session Cookie cookie id

cookie,session

1.会话session

用户打开浏览器,点击链接,访问web资源,关闭浏览器,称为一次会话

2.保存会话的技术

cookie:客户端技术,相应请求

session:服务器技术,将信息和数据放在session中

 

session与cookie的区别:

  1. cookie是吧用户的数据写给用户的浏览器,浏览器保存,可以保存多个

  2. session是吧用户的数据写给用户独占的session'中,服务器端保存,保存重要的信息,减少服务器资源的浪费

  3. session对象由服务器创建

3.cookie

从请求中拿到cookie信息

服务器相应给客户端cookie

  1. 获得cookie

  2. 获得cookie的key

  3. 获得cookie的值

  4. 新建一个cookie

  5. 设置cookie的有效期

  6. 响应给客户端一个cookie

 
//服务器从客户端获取cookie
 Cookie[] cookies = req.getCookies();
 cookie.getName()
 cookie.getValue()
 new Cookie("lastLoginTime", System.currentTimeMillis()+"");
 cookie.setMaxAge(24*60*60);
 resp.addCookie(cookie);
 public class cookieDemo01 extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         req.setCharacterEncoding("utf-8");
         resp.setContentType("text/html;charset=utf-8");
 ​
         PrintWriter out = resp.getWriter();
 ​
         //服务器从客户端获取cookie
         Cookie[] cookies = req.getCookies();
 ​
         //判断cookie是否存在
         if (cookies!=null){
             out.write("上一次访问的时间是:");
             for (int i = 0; i < cookies.length; i++) {
                 Cookie cookie = cookies[i];
                 //获取名字
                 if (cookie.getName().equals("lastLoginTime")){
                     //获取cookie中的值
 ​
                     long time = Long.parseLong(cookie.getValue());
                     Date date = new Date(time);
                     out.write(date.toLocaleString());
 ​
                 }
             }
         }else {
             out.write("first visit");
         }
 ​
         //服务器给客户端相应一个cookie
         Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis()+"");
         //cookie设置有效期
         cookie.setMaxAge(24*60*60);
         resp.addCookie(cookie);
     }

 

3.1 删除cookie

不设置有效期,默认关闭浏览器自动失效

设置有效期为0,同样关闭浏览器失效

4.session

使用场景:

  1. 保存一个登录用户的信息

  2. 购物车信息

  3. 在整个网站中,经常会使用的数据保存在session中

使用方式:

 
public class sessionDemo01 extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         resp.setCharacterEncoding("utf-8");
         req.setCharacterEncoding("utf-8");
         resp.setContentType("text/html;charset=utf-8");
 ​
         //得到session
         HttpSession session = req.getSession();
 ​
         //给session存东西
         session.setAttribute("name",new Person("谷子豪",23));
 ​
         //id
         String id = session.getId();
 ​
         //判断session是不是新建的
         if (session.isNew()){
             resp.getWriter().write("session creat ok,id :"+id);
         }else {
             resp.getWriter().write("session have already,id :"+id);
         }
     }

 

注销session:

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     HttpSession session = req.getSession();
     session.removeAttribute("name");
     session.invalidate();
     //注销session
 }
 <!--设置session的默认失效时间-->
     <session-config>
 <!--十五分钟后session自动失效,以分钟为单位-->
         <session-timeout>15</session-timeout>
     </session-config>

 

over

标签:javaweb,resp,req,session,Cookie,cookie,id
From: https://www.cnblogs.com/GUGUZIZI/p/17420886.html

相关文章

  • JavaWeb中Filter&Listener的神奇作用
    @[toc]1,Filter1.1Filter概述Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)而在访问到这些资源之前可以使过滤器拦截来下,......
  • requests: 基本使用、get、post、代理、cookie案例、超级鹰打码api
    1、requests_1_基本使用""".-''-..--._..._.'.-.)|__|......
  • 学习Javaweb中遇到的数据回显显示问题
    问题描述:当点击修改按钮时,显示的内容如下:解决方案:加上isELIgnored="false"<%@pagecontentType="text/html;charset=UTF-8"language="java"isELIgnored="false"%>最终结果显示:......
  • 学习Javaweb使用jsp中的EL表达式中的错误
    使用EL表达式后数据在页面中不显示浏览器中数据显示的样子:解决方案:在JSP页面中添加以下代码<%@pageisELIgnored="false"%>最后数据显示:......
  • nodejs的cookie实现module(cookie.js)
     文件名:cookie.js//Directlysendcookietosystem,ifit'snode.jshandler,send://request.headers.cookie//Ifit'ssocket.iocookie,send://client.request.headers.cookiemodule.exports.cookie=function(co){this.cookies={};co&......
  • nodejs 解析php的session_decode 的module(session_decode.js)
    文件名:session_decode.js//exports.session_decode=function(){//varmessage="Hellofromtheohaitheremodule";//returnmessage;//};exports.session_decode=function(data){//*example:session_decode('firstName|s:5:&quo......
  • Cookie的使用(js-cookie插件)
    1.js-cookie一个简单,轻巧的JavaScriptAPI,用于处理Cookie2.安装npminstalljs-cookie--save3.引用importCookiesfrom'js-cookie'Vue.prototype.$Cookies=Cookies;4.创建<!--作者:zhangfan页面名称:Cookie的使用(js-cookie插件)--><template><divid="produc......
  • javaweb
    一、html和css二、JavaScript三、Jquery(jquery+jquery动画)四、xml五、tomcat&servlet六、jsp七、el表达式(包含jstl标签库)八、文件上传和下载九、Cookie(包含Session)十、Filter十一、Json、ajax、i18十二、axios......
  • Javaweb期末作品
    用户修改界面update.jsp<html><head><title>update</title><linkrel="stylesheet"href="css/updateUser.css"></head><bodystyle="margin:0100px"><divcla......
  • 什么是浏览器 cookies 里的 JSessionID?
    在Web开发中,JSessionID是一个重要的概念,它与浏览器Cookies密切相关。为了更好地理解JSessionID,我们需要先了解一些关于Cookies的背景知识。Cookies是一种存储在用户计算机上的小型文本文件,用于在浏览器和Web服务器之间传递信息。它们被广泛用于跟踪和维护用户的会话状态,以及存储......