一般对于不要求安全的非敏感数据,建议存储在Cookie中! 对于敏感的数据,占用空间较小的,建议存储在Session中! 对于敏感的,较大的数据,存数据库!…
Cookie和Session的区别 一.cookie机制和session机制的区别 ************************************************************************************* 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案.同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存…
一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话其中不管浏览器发送多少请求,都视为一次会话,直到浏览器关闭,本次会话结束. 其中注意,一个浏览器就相当于一部电话,如果使用火狐浏览器,访问服务器,就是一次会话了,然后打开google浏览器,访问服务器,这是另一个会话,虽然是在同一台电脑,同一个用户在访问,但是,这是两次不同的会话. 1.2.会话机制   Web程序中常用的技术,用来跟踪用户的整个…
1.描述Cookie的作用 Cookie是网站保存在浏览器客户端的信息,也就是说保存在访客的机器里的变量,一般随着HTTP头发送到客户端.在Cookie生效之后及失效之前,客户每次发出页面请求的时候,都会把Cookie -块发送到服务器,只要我们针对它进行相应的处理,就可以改变它的值. 2.描述Session的作用 Session的中文译名叫做”会话”,其本来的含义是指有始有终的一系列动作/消息,比如用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间…
1. 会话技术     1. Cookie     2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应.     * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2. 功能:在一次会话的范围内的多次请求间,共享数据 3. 方式:     1. 客户端会话技术:Cookie     2. 服务器端会话技术:Session Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. 快速入门:     * 使用步骤…
Session和Cookie出现的原因: 由于Http是无状态的协议,会话之间没有任何关联,也就是上一次会话和下一次会话没有任何关联,因此出现了会话技术Cookie和Session 下面分别从Cookie和Session两方面来讨论: Cookie: Cookie是客户端的会话技术,当浏览器访问服务端时,服务端可以通过将Cookie信息存放到响应头Set-Cookie字段中,随着响应报文发送给浏览器 浏览器看到Set-Cookie字段后,会将该信息保存起来,下次请求时,将Cookie自动放到请求…
Servlet提供了HttpSession接口,该接口提供了一种跨多个页面请求或访问网站时识别用户以及存储有关用户信息的方式. Servlet容器使用这个接口来创建一个HTTP客户端和HTTP服务器之间的session会话.会话持续一个指定的时间段,跨多个连接或页面请求. Session技术原理 当浏览器访问服务器时,我们可以操作创建Session,在Session创建时,服务器会自动创建一个Cookie,发送给客户端,用于存储sessionid,这个Sessionid的值是唯一的! 当浏览器再…
以下是在Servlet中操作Cookie时可使用的有用的方法列表 ●  public void setDomain(String pattern) 该方法设置cookie适用的域,例如 itxdl.cn ●  public String getDomain() 该方法获取cookie适用的域,例如 itxdl.cn ●  public void setMaxAge(int expiry) 该方法设置cookie过期的时间(以秒为单位),如果不这样设置,cookie只会在当前session会话中持…
●  数据存储在服务器,安全. ●  session能保存Object类型数据,也就是说能存储任意数据. ●  可存储的数据大小,理论上是无限制的. ●  因为数据存储在服务器端,当用户比较多时,会占用服务器大量的内存空间,服务器资源很容易被耗尽.…
方式一:修改所有的session默认时长,修改tomcat目录下的conf文件夹下的web.xml文件. <session-config> <session-timeout>希望存活的时长,单位是分钟</session-timeout> </session-config> 方式二:修改单个session存活时长: 使用session对象,调用setMaxInactiveInterval(int 秒).…
●  public Object getAttribute(String name) 该方法返回在该session会话中具有指定名称的对象,如果没有指定名称的对象,则返回null. ●  public void setAttribute(String name,Object value) 该方法使用指定的名称绑定一个对象到该session会话. ●  public void removeAttribute(String name) 该方法将从该session会话移除指定名称的对象. ●  pub…
Session对象的获取有两种: ●  有参方法: HttpSession request.getSession(boolean isNew) 参数: true:获取一个Session对象,如果之前Session存在,则拿来使用,如果之前不存在,则创建一个新的使用. false:获取一个Session对象,如果之前Session存在,则拿来用,如果不存在则返回null. ●  无参方法: HttpSession request.getSession() 推荐使用这种方法获取Session对象,其…
Cookie技术存储的数据类型只能是字符串,且不支持中文 ●  保存的数据大小有限,4kb ●  太依赖用户浏览器的设置,用户可以禁用Cookie! ●  数据存储在客户端的文本文件中,不安全,不建议存储敏感数据! String转换后的文本 = URLEncoder.encode(正常的文本, "utf-8"); 在读取Cookie时,需要将url编码,转换为正常文字: String 正常文字 = URLDecoder.decode(url编码文字, "UTF-8"…
操作Cookie时,需要注意路径问题: 设置操作:任何路径都可以设置Cookie,但是有时我们也是用设置进行替换Cookie和删除Cookie(maxAge=0)! 替换:只能由完全相同的路径来操作!父路径,子路径都不可操作! 删除:只能由完全相同的路径来操作!父路径,子路径都不可操作! 读取操作: 子路经的Cookie,父路径无法读取! 父路径的Cookie,子路经可以读取! 例如:拥有如下三个Servlet: a.  http://localhost/项目名/xx/a.do 域名:local…
Tomcat作为Web服务器,对Cookie提供了良好的支持.那么,运行在Tomcat的Servlet该如何访问Cookie呢?幸运的是,Servlet无需直接和HTTP请求或响应中的原始Cookie数据打交流,这项工作由Servlet容器来完成.Java Servlet API为Servlet访问Cookie提供了简单易用的接口,Cookie用javax.servlet.http.Cookie类来表示,每个Cookie对象包含一个Cookie名字和Cookie值. 通过Servlet设置Coo…
Cookie使用HTTPHeader传递数据.Cookie机制定义了两种报头,Set-Cookie报头和Cookie报头.Set-Cookie报头包含于Web服务器的响应头(ResponseHeader)中,Cookie报头包含在浏览器客户端请求头(RequestHeader)中.其原理如下: Cookie 1.客户端在浏览器的地址栏中键入Web服务器的URL,浏览器发送读取网页的请求. 2.服务器接收到请求后,产生一个Ser-Cookie报头,放在HTTP报文中一起回传客户端,发起一次会话.…
Cookie的英文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器送给客户的“点心”.服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如电子商务)特别有用. 为了便于直观的理解Cookie的作用,可以用健身馆向会员发送的会员卡来做比方.健身馆首先向来报名的客户发送一张会员卡,会员卡上存储了客户的编号.姓名和照片等信息.以后每次客户到健身馆来健身,先要出示会员卡,健身馆依据会员卡的信息来判断是否允许客户健身. 以上会员卡就类似于服务器…
感知Session绑定事件的监听器 保存在Session域中的对象可以有多种状态:绑定(session.setAttribute("bean",Object)到Session中:从Session域中解除(session.removerAttribute("bean")绑定:随Session对象持久化到一个存储设备中:随Session对象从一个存储设备中恢复. Servlet规范中定义了两个特殊的监听器接口HttpSessionBindingListener和Http…
监听域对象中属性变更的监听器 域对象中属性的变更的事件监听器就是用来监听ServletContext.HttpSession.HttpServletRequest这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener.HttpSessionAttributeListener和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加.删除和替换的事件,同一事件在…
4  监听HttpSession域对象的创建和销毁 HttpSessionListener接口用于监听HttpSession对象的创建和销毁. 创建一个Session时,激发sessionCreate(HttpSessionEvent event)方法. 销毁一个Session时,激发sessionDestroyed(HttpSessionEvent event)方法. 范例:编写一个MyHttpSessionListener类,实现HttpSessionListener接口,监听HttpSes…
1.请说明cookie.request.session.application的作用域和声明周期? 并说明它们适用与什么场景? request的生命周期是一次请求.可以用于JSP表单提交数据. session会话可以设置它的超时时间,Tomcat中的默认时间为30分钟,session对象的典型应用时用来对用户的身份进行验证,进而进行权限设置. cookie存放的载体在客户端的浏览器中,生命周期默认时根据服务器返回的Set-Cookie头设置的,共两大类: 会话cookie:浏览器一关闭就清除了.…
JSP内置对象定义 JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它们起到了简化页面的作用,JSP的内置对象广泛应用于JSP的各种操作中. JSP九大内置对象 由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态创建Web页面内容.但Java语法在使用一个对象前,需要先实例化这个对象,这其实是一件比较繁琐的事情.为了简化开发,JSP提供了一些内置对象,用来实现很多JS…
HTTP协议是无状态的,我们的客户端与服务器的每一次请求与响应,我们服务器都没有记忆能力将客户端与服务器的多次交互数据进行存储与管理共有两种技术实现: ●  基于客户端实现:Cookie,将状态保存在客户端中 ●  基于服务器实现:Session,将状态保存在服务器中…
Java Servlet是运行在带有支持Java Servlet规范的解释器的web服务器上的Java类. Servlet可以使用javax.servlet和javax.servlet.http包创建,它是Java企业版的标准组成部分,Java企业版是支持大型开发项目的Java类库的扩展版本. 这些类实现Java Servlet和JSP规范.在编写本书时,Servlet的最新版本是4.0,JSP的最新版本是2.3. 在javax.servlet包中定义了Servlet接口及相关的通用接口和类:在…
会话技术 什么是会话 从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和响应,合起来叫做浏览器和服务器之间的一次会话 会话管理作用 共享数据用的,并且是在不同请求间实现数据共享. 会话技术是为了解决客户端浏览器和服务端的通信问题.用户在网页上的操作会产生很多重要的并且需要被保存的数据.比如购物车信息,可能我们此时不会清空购物车,那么购物车的信息需要被完整的保存下来.再比如登陆网站只需要登陆一次,再登陆网站的其他网页时就不需要重复登陆了,这是因为用户信息被保存了…
案例需求:编写用户登陆页面的验证码模块,在用户进行登陆时,输入验证码后不需要点击提交按钮,使用AJAX异步地向服务器发送验证验证码的请求.如果验证码正确,可以点击提交按钮,如果验证码输入错误,提示用户.如果用户看不清验证码,点击验证码还可以刷新出新的验证码. 案例实现: 验证码原理:当页面请求一个验证码的Servlet时,这个Servlet会把数据以图片的形式传给客户端,并把数据以字符串的形式存入了session中.当用户以图片为标准输入对应的验证码并发送给对应的用来验证验证码的Servlet时…
JSON (JavaScript Object Notation)是JavaScript语言中的一种对象类型.JSON的好处是易于阅读和解析.当客户端和服务器端需要交互大量数据时,使用JSON格式传输可以简化客户端和服务器端的编程. 1  JSON对象格式 ●  JSON对象格式如下: {"key":value,"key":value,...} 例如:{"name":"兄弟连IT教育","subject":…
案例需求:编写一个jsp servlet程序,在login.jsp发起login.do登录请求,当输入的用户名是abc密码是123时,则判断是登录成功,其它暂时认为是登录失败.当用户登录成功时,将用户名放入session对象中并跳转到main.jsp.当用户登录失败时向request对象中存放一个msg消息,内容是登录失败.再发送一个orderInfo.do的查看订单信息的请求,可以跳转到orderInfo.jsp.在上面程序的基础上,写一个过滤器,要求用户登录成功才能查看订单信息. 案例实现:…
●  列出提供下载的文件资源 我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFileServlet,用于列出Web应用系统中所有下载文件. ListFileServlet的代码如下: package com.xdl.servlet; import java.io.File; import java.io.IOException; import java.util.HashMap;…
在Web应用系统开发中,文件上传和下载功能是非常常用的功能. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载.common-fileupload是依赖于common-io这个包的,所以还需要下载这个包. 开发环境搭建…