会话只是指一段指定的时间间隔。

会话跟踪是维护用户状态(数据)的一种方式。它也被称为servlet中的会话管理。

Http协议是一个无状态的,所以我们需要使用会话跟踪技术来维护用户状态。 每次用户请求服务器时,服务器将请求视为新请求。 所以需要保持一个用户的状态来识别特定的用户。

HTTP是无状态的,这意味着每个请求被认为是新的请求。如下图所示:

为什么使用会话跟踪?

  • 因为需要用于识别特定的用户。

会话跟踪技术

会话跟踪中使用的技术有四种:

  • Cookies
  • 隐藏表格域
  • 网址重写
  • HttpSession

Cookie是在多个客户端请求之间持久存储的一小段信息。

Cookie具有名称,单个值和可选属性,例如注释,路径和域限定符,生存周期和版本号。

Cookie工作原理

默认情况下,每个请求都被视为新的请求。在cookie技术中,servlet响应可以添加cookie。 所以cookie存储在浏览器的缓存中。之后,如果用户发出请求,默认情况下会带上cookie。 因此,我们就可以知道用户旧用户。

Cookie类型

Servlet中有2种类型的Cookie。

  • 非持久性cookie
  • 持久性Cookie

非持久性cookie

  • 它仅适用于单个会话。当用户关闭浏览器时都会删除它。

持久性Cookie

  • 它对多个会话有效。当用户关闭浏览器时也不会删除它。只有在用户注销或注销时才被删除。

Cookie的优点

  • 维持状态最简单的技术。
  • Cookie在客户端维护。

Cookie的缺点

  • 如果从浏览器中禁用Cookie,则无法正常工作。
  • 只能在Cookie对象中设置文本信息。

Cookie类

javax.servlet.http.Cookie类提供了使用Cookie的功能。它为Cookie提供了很多有用的方法。

Cookie类的构造方法

构造方法 描述
Cookie() 构建一个cookie。
Cookie(String name, String value) 构造具有指定名称和值的cookie。

Cookie类的方法

下面中给出了一些常用的Cookie类方法。

方法 描述
public void setMaxAge(int expiry) 设置cookie的最大生命周期(以秒为单位)。
public String getName() 返回cookie的名称。创建后无法更改名称。
public String getValue() 返回cookie的值。
public void setName(String name) 更改cookie的名称。
public void setValue(String value) 更改cookie的值。

使用Cookies所需的其他方法

要添加cookie或从cookie获取值,需要其他接口提供的一些方法。它们分别是:

  • public void addCookie(Cookie ck)HttpServletResponse接口的方法用于在响应对象中添加cookie。
  • public Cookie[] getCookies()HttpServletRequest接口的方法用于从浏览器返回所有的cookie。

如何创建Cookie?

下面来看看创建cookie的简单代码。

Cookie ck=new Cookie("user","maxsu jaiswal");//creating cookie object
response.addCookie(ck);//adding cookie in the response
Java

如何删除Cookie?

下面来看看删除cookie的简单代码。它主要用于注销或注销用户。

Cookie ck=new Cookie("user","");//deleting value of cookie
ck.setMaxAge(0);//changing the maximum age to 0 seconds
response.addCookie(ck);//adding cookie in the response
Java

如何获取Cookie?

下面来看看简单的代码用来获取所有的cookies。

Cookie ck[]=request.getCookies();
for(int i=0;i<ck.length;i++){
out.print("<br>"+ck[i].getName()+" "+ck[i].getValue());//printing name and value of cookie
}

Cookie是存储在客户端的一种信息技术。

在上一页中,我们学到了很多关于cookie的内容 如何创建cookie,如何删除cookie,如何获取cookie等

在这里,我们将使用servlet cookie创建一个登录和注销示例。

在这个例子中,我们创建了3个链接:登录,注销和用户资料。用户在未登录之前不能进入个人资料页面。如果用户已经注销,则需要再次登录才能访问个人资料。

在这个应用程序中,创建了以下文件。

  • index.html - Web应用程序首页。
  • link.html - 链接页面。
  • login.html - 登录页面。
  • LoginServlet.java - 登录Servlet处理。
  • LogoutServlet.java - 注销Servlet处理。
  • ProfileServlet.java - 用户个人资料Servlet。
  • web.xml - Servlet配置文件。

Servlet高级应用的更多相关文章

  1. <<< web里面Servlet高级应用的基础介绍

    Servlet中的页面跳转?两种方式,实现跳转:内部跳转(请求转发).外部跳转(重定向)内部跳转(请求转发)特点:在服务器内部完成页面之间的跳转:请求只有一次:浏览器地址不会改变.request.ge ...

  2. Servlet高级

    1. 获取初始化参数 在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数. index.jsp < ...

  3. Servlet高级应用---Servlet与缓存

    一]设置缓存文件的有效日期        重点方法:            HttpServletRequest类:                    1>String getRequest ...

  4. servlet 高级知识之Filter

    Filter叫做拦截器, 对目标资源拦截,拦截HTTP请求和HTTP响应,本质是对url进行拦截. 与serlvet不同的是, Filter的初始化是随着服务器启动而启动. 在Filter接口中定义了 ...

  5. Servlet高级部分Listener

    监听器的使用场景: ①:统计在线人数   ②:实现单一登录[一个账号只能在一台机器上登录] Servlet中的8大监听器: 1.         ServletContextListener [接口方 ...

  6. Servlet高级部分Filter(过滤器)

    一:Filter称之为"过滤器",用在Servlet外,对request和response进行修改.它是AOP(面向切面编程思想的一种体现),Filter中有一个FilterCha ...

  7. servlet 高级知识之Listener

    Listener,顾名思义,监听器.它可以监听客户端的请求.服务端的操作等. 通过监听器,可以自动激发一些操作,比如监听在线的用户的数量.当增加一个HttpSession时,就激发sessionCre ...

  8. JavaWeb初级进阶高级学习方向计划

    阶段1 语言基础 课程一.Java负基础扫盲课 1.初识Java 本课程从java开发环境配置开始,讲解了java语法基础 .类和面向对象.面向对象编程三大特性:封装.继承.多态.建议零基础学员从本课 ...

  9. java web学习笔记-Servlet篇

    Servlet基础 1.Servlet概述 JSP的前身就是Servlet.Servlet就是在服务器端运行的一段小程序.一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问 ...

随机推荐

  1. Hadoop 三剑客之 —— 集群资源管理器 YARN

    一.hadoop yarn 简介 二.YARN架构         1. ResourceManager         2. NodeManager         3. ApplicationMa ...

  2. 常用URL分享,实用地址

    常用地址 文库文档免费下载地址1:http://www.hiwenku.com/ 文库文档免费下载下载2:http://www.20009.net/wk.html google地图拾取器:http:/ ...

  3. Spring Boot2(五):使用Spring Boot结合Thymeleaf模板引擎使用总结

    一.Thymeleaf概述 一般来说,常用的模板引擎有JSP.Velocity.Freemarker.Thymeleaf . SpringBoot推荐的 Thymeleaf – 语法更简单,功能更强大 ...

  4. Python生成word

    Python生成word 使用python-docx-template库, 将html转为word. python-docx-template可以使用类似jinja2的模板语法. 依赖docx库, 安 ...

  5. hiccup和Latch off

    hiccup(Constant-Current)和Latch off 限电流保护的两种形式 hiccup:一种是以恒定电流存在,这种一般是可恢复的,当故障解除后自动恢复: Latch off:一种是锁 ...

  6. IT需求过程管理

    IT部门就是为其他业务.内勤部门提供信息化手段的,所以在实施信息化系统的时候首先要做的就是需求调研,但是针对于绝大多数业务部门的人员而言,信息系统是很不熟悉的,我们会经常听到这样的回复“这个应该很快就 ...

  7. 03-Spring profile实用精简版介绍

    为什么说是实用精简版,没办法,工作太忙压力大啊,菜是原罪啊,所以接下来写的一些博客可能都是更偏实用性,精简点,方便自己回顾,快速上手使用即可,毕竟感觉不详细还有书不是吗. profile是用来干什么的 ...

  8. 充气娃娃什么感觉?Python告诉你

    上期为大家介绍了requests库的基本信息以及使用requests库爬取某东的商品页,收到了很多同学的反馈说期待猪哥的更新,猪哥感到非常开心,今天就带大家来玩一把刺激的! 一.需求背景 在实际开发过 ...

  9. java获取config下文件

    private static final String keystore="keystore.jks"; InputStream is=Thread.currentThread() ...

  10. kuangbin专题 专题一 简单搜索 Fire Game FZU - 2150

    题目链接:https://vjudge.net/problem/FZU-2150 题意:’ . '代表火无法烧着的地方,‘ # ’表示草,火可以烧着.选择任意两个‘ # ’(可以两个都选同一个 ‘ # ...