Servlet高级应用
会话只是指一段指定的时间间隔。
会话跟踪是维护用户状态(数据)的一种方式。它也被称为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
如何删除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
如何获取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高级应用的更多相关文章
- <<< web里面Servlet高级应用的基础介绍
Servlet中的页面跳转?两种方式,实现跳转:内部跳转(请求转发).外部跳转(重定向)内部跳转(请求转发)特点:在服务器内部完成页面之间的跳转:请求只有一次:浏览器地址不会改变.request.ge ...
- Servlet高级
1. 获取初始化参数 在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数. index.jsp < ...
- Servlet高级应用---Servlet与缓存
一]设置缓存文件的有效日期 重点方法: HttpServletRequest类: 1>String getRequest ...
- servlet 高级知识之Filter
Filter叫做拦截器, 对目标资源拦截,拦截HTTP请求和HTTP响应,本质是对url进行拦截. 与serlvet不同的是, Filter的初始化是随着服务器启动而启动. 在Filter接口中定义了 ...
- Servlet高级部分Listener
监听器的使用场景: ①:统计在线人数 ②:实现单一登录[一个账号只能在一台机器上登录] Servlet中的8大监听器: 1. ServletContextListener [接口方 ...
- Servlet高级部分Filter(过滤器)
一:Filter称之为"过滤器",用在Servlet外,对request和response进行修改.它是AOP(面向切面编程思想的一种体现),Filter中有一个FilterCha ...
- servlet 高级知识之Listener
Listener,顾名思义,监听器.它可以监听客户端的请求.服务端的操作等. 通过监听器,可以自动激发一些操作,比如监听在线的用户的数量.当增加一个HttpSession时,就激发sessionCre ...
- JavaWeb初级进阶高级学习方向计划
阶段1 语言基础 课程一.Java负基础扫盲课 1.初识Java 本课程从java开发环境配置开始,讲解了java语法基础 .类和面向对象.面向对象编程三大特性:封装.继承.多态.建议零基础学员从本课 ...
- java web学习笔记-Servlet篇
Servlet基础 1.Servlet概述 JSP的前身就是Servlet.Servlet就是在服务器端运行的一段小程序.一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问 ...
随机推荐
- 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写
互联网一线工程师程序代写 微信联系 当天完成 查看大牛简介特色: 学霸代写,按时交付,保证原创,7*24在线服务,可加急.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor ...
- 9个WebGL的演示
1. WebGL Water This incredible demo is as fluid as you could believe. Raise and drop the ball into ...
- Laravel --- 要点笔记
一.路由: // 常规用法 Route::get('/',function(){ return 'get'; }) // 匹配多个 Route::match(['get','post'],'/',fu ...
- 01 Javascript简介(了解)
Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript历史背景介绍 布 ...
- centos7PXE和cobbler自动部署装机
安装程序启动过程MBR:isolinux/boot.catstage2: isolinux/isolinux.bin配置文件:isolinux/isolinux.cfg 每个对应的菜单选项: 加 ...
- Python初学者的经历
刚开始安装了个python3.6的版本,自己写了个hello world ,发现可以运行,后面又网上找到了下载酷狗音乐的代码,结果报各种包没有,使用pip安装也各种安装不起来 又从网上找了python ...
- ZooKeeper —— 单机环境和集群环境搭建
一.单机环境搭建 1.1 下载 下载对应版本Zookeeper,这里我下载的版本3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # w ...
- NET中级开发工程师职责要求
NET中级开发工程师岗位职责1.熟练掌握 WebApi, ASP.NET MVC, Entity Framework,.NET CORE等技术,精通JQuery.Vue.Bootstrap等前端开发框 ...
- vue随笔
1.vue基础 Vue 是一个mvvm 的渐进式框架.Angular 是一个mvc的.所以vue的重点更偏向于mv 他的使用方式 大家会发现里面带有大量的$的属性. 学习vue的指令 V-for 用 ...
- GitLab通过API创建项目
示例: #!/usr/bin/python # -*- coding:utf-8 -*- import os import json import requests import subprocess ...