1 会话技术简介

1.1 存储客户端状态

1.2 会话技术

2 Cookie技术

2.1 Cookie技术的购物

2.2 服务器端向客户端发Cookie

        //1、创建cookie对象
Cookie cookie = new Cookie("name","zhangsan"); //1.1 为cookie设置持久化时间 ---- cookie信息在硬盘上保存的时间
cookie.setMaxAge(*);//10分钟 ---- 时间设置为0代表删除该cookie
//1.2 为cookie设置携带的路径
//cookie.setPath("/WEB16/sendCookie");//访问sendCookie资源时才携带这个cookie
cookie.setPath("/WEB16");//访问WEB16下的任何资源时都携带这个cookie
//cookie.setPath("/");//访问服务器下的所有的资源都携带这个cookie //2、将cookie中存储的信息发送到客户端---头
response.addCookie(cookie);

2.3 服务器端接收Cookie

    //获得客户端携带的cookie的数据
Cookie[] cookies = request.getCookies();
//Cookie cookie = new Cookie("name","zhangsan");
//通过cookie名称获得想要的cookie
if(cookies!=null){
for(Cookie cookie : cookies){
//获得cookie的名称
String cookieName = cookie.getName();
if(cookieName.equals("name")){
//获得该cookie的值
String cookieValue = cookie.getValue();
System.out.println(cookieValue);
}
}
}

3 记用户上次访问时间

3.1 业务分析

3.2 代码实现

//获得当前时间
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String currentTime = format.format(date); //1、创建Cookie 记录当前的最新的访问时间
Cookie cookie = new Cookie("lastAccessTime",currentTime);
cookie.setMaxAge(**);
response.addCookie(cookie); //2、获得客户端携带cookie ---- lastAccessTime
String lastAccessTime = null;
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie coo : cookies){
if("lastAccessTime".equals(coo.getName())){
lastAccessTime = coo.getValue();
}
}
} response.setContentType("text/html;charset=UTF-8");
if(lastAccessTime==null){
response.getWriter().write("您是第一次访问");
}else{
response.getWriter().write("您上次的访问的时间是:"+lastAccessTime);
}

4 Session技术

4.1 Session 概述

图解;

4.2 获得Session对象

4.3 存取数据

//创建属于该客户端(会话)的私有的session区域
/* request.getSession()方法内部会判断 该客户端是否在服务器端已经存在session
* 如果该客户端在此服务器不存在session 那么就会创建一个新的session对象
* 如果该客户端在此服务器已经存在session 获得已经存在的该session返回
*/
HttpSession session = request.getSession(); session.setAttribute("name", "jerry"); String id = session.getId();//该session对象的编号id response.addCookie(cookie); response.getWriter().write("JSESSIONID:"+id);

4.4 Session生命周期

5 jsessionid持久化

当浏览一个Servle2t时设置值,另一个Servlet2访问这个值是可以访问到的,但是当浏览器关闭了,在访问Servlet2 Session里面相同的值时就会出现null 是因为Cookie 里面存放的jsessionid没有了,它找不到了.所以要反它持久化

 //手动创建一个存储JSESSIONID的Cookie 为该cookie设置持久化时间
Cookie cookie = new Cookie("JSESSIONID",id);
cookie.setPath("/WEB16/");
cookie.setMaxAge(*);

6 验证码实现

    request.setCharacterEncoding("UTF-8");

        //验证码校验
//获得页面输入的验证
String checkCode_client = request.getParameter("checkCode");
//获得生成图片的文字的验证码
String checkCode_session = (String) request.getSession().getAttribute("checkcode_session");
//比对页面的和生成图片的文字的验证码是否一致
if(!checkCode_session.equals(checkCode_client)){
request.setAttribute("loginInfo", "您的验证码不正确");
request.getRequestDispatcher("/login.jsp").forward(request, response);
return;
}

7 总结

JSP-Cookie和Session的更多相关文章

  1. Cookie、Session、jsp、EL、JSTL

      会话技术 Cookie Session 从访问一个站点,到关闭不继续访问 称为一次会话过程.会话技术就是记录本次会话中客户端的状态与数据的. 会话技术分为cookie.session. cooki ...

  2. JSP 状态管理 -- Session 和 Cookie

    Http 协议的无状态性 无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求.但是同一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是刚才那个浏览器 session sessio ...

  3. JSP基础知识➣Cookie和Session(五)

    JSP Cookie 处理 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持.JSP脚本通过request对象 ...

  4. JSP(3)—Cookie和Session

    HTTP是一个无状态的协议,web服务器无法分辨出那些请求是同一个浏览器发出的,浏览器每一次请求都是孤立的 即使HTTP1.1支持持续链接,但当用户有一段时间没有请求时,连接也会关闭. 如何实现网上的 ...

  5. JSP内置对象的cookie和session实现简单登录界面

    创建一个index.jsp页面 <%@ page language="java" contentType="text/html; charset=utf-8&quo ...

  6. 12 Cookie、Session和JSP基础

    1.会话技术 (1)会话概念:一次会话中包含多次请求和响应.一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 (2)会话功能:在一次会话的范围内的多次请求间,共享数据 (3)会 ...

  7. JSP基础--会话跟踪技术、cookie、session

    会话跟踪技术 1 什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10 ...

  8. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  9. 【转】Cookie和Session区别和联系详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  10. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

随机推荐

  1. LUOGU P2949 [USACO09OPEN]工作调度Work Scheduling (贪心)

    解题思路 明明一道比较简单的贪心结果挂了好几次23333,就是按照时间排序,然后拿一个小根堆维护放进去的,如果时间允许就入队并且记录答案.如果不允许就从堆里拿一个最小的比较. #include< ...

  2. golang和python的二进制转换

    1.二进制转换规则 比如13,对13整除2,余数1,整除变为6,依次类推 13/2=6余1 6/2=3余0 3/2=1余1 1/2=0余1 所以最后的结果为1101 2.python def conv ...

  3. sql不用拼接语句实现动态查询条件

    DECLARE @oFrom INT SELECT * FROM baseinfo AND ( ( and Type = 'Breakfast') ) or的条件可自由添加,尤其适用互斥条件的查询.

  4. Java笔记 - 线程与并行API

    一.线程简介 1.线程与进程 每个进程都具有独立的代码和数据空间,进程间的切换会有较大的开销.线程是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开 ...

  5. centos 以太坊多节点私链搭建

    环境  centos 7   搭建 3 个节点的 私链. 第一步 安装 一些依赖的 工具 yum update -y && yum install git wget bzip2 vim ...

  6. CentOS 8上安装Docker

    前言 这几天,想玩玩docker,方便漏洞复现,我去学docker搭建了,感觉不错,挺方便的 安装步骤: 1.下载docker-ce的repo curl https://download.docker ...

  7. sed应用 升级场景配置文件更新 指定行追加

    function addLine() { confFile=configuration.xml isExist=`cat ${confFile} | grep "<listen_ena ...

  8. python 之 字符串处理

    分割字符串 根据某个分割符分割 >>> a = '1,2,3,4' >>> a.split(',') ['] 根据多个分隔符分割 >>> line ...

  9. ftp文件上传下载命令

    介绍:从本地以用户wasqry登录的机器1*.1**.21.67上通过ftp远程登录到ftp服务器上,登录用户名是lte****,以下为使用该连接做的实验.  查看远程ftp服务器上用户lte**** ...

  10. Swagger发布服务器时错误 500 : { "Message": "An error has occurred." }

    在做Web API的文档自动生成时,本机调试都正常,发布到服务器上出现500错误 500 : { "Message": "An error has occurred.&q ...