收藏 分享(赏)

jsp&servlet知识点总结.doc

上传人:精品资料 文档编号:8656398 上传时间:2019-07-07 格式:DOC 页数:59 大小:346KB
下载 相关 举报
jsp&servlet知识点总结.doc_第1页
第1页 / 共59页
jsp&servlet知识点总结.doc_第2页
第2页 / 共59页
jsp&servlet知识点总结.doc_第3页
第3页 / 共59页
jsp&servlet知识点总结.doc_第4页
第4页 / 共59页
jsp&servlet知识点总结.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、 Servletservelt:(基于网络的)什么是 Servelt:运行在 web 服务器或应用服务器上的 java 程序,他是一个中间层负责连接来自 web 浏览器或其他 HTTP 客户程序的请求和 HTTP 服务器上的数据库或应用程序。为什么使用 servlet:Servlet 是一种服务器端的 Java 应用程序,具有独立于平台和协议的特性,可以生成动态的 Web 页面。 它担当客户请求( Web 浏览器或其他 HTTP 客户程序)与服务器响应(HTTP 服务器上的数据库或应用程序)的中间层。 Servlet 是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行

2、启动的 Java 应用程序不同,Servlet 由 Web 服务器进行加载,该 Web 服务器必须包含支持Servlet 的 Java 虚拟机。Servlet 的优点:servlet 是用 Java 编写的,所以它们一开始就是平台无关的。这样,Java 编写一次就可以在任何平台运行(write once,run anywhere)的承诺就同样可以在服务器上实现了。servlet 还有一些独特优点:servlet 是持久的。 servlet 只需 Web 服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接) servlet 是与平台无关的。如前所述,servlet 是用 Java

3、 编写的,它自然也继承了Java 的平台无关性。servlet 是可扩展的。由于 servlet 是用 Java 编写的,它就具备了 Java 所能带来的所有优点。Java 是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet 自然也具备了这些特征。servlet 是安全的。从外界调用一个 servlet 的惟一方法就是通过 Web 服务器。这提供了高水平的安全性保障,尤其是在你的 Web服务器有防火墙保护的时候。setvlet 可以在多种多样的客户机上使用。由于 servlet 是用 Java编写的,所以你可以很方便地在 HTML 中使用它们。总结:servlet 高效、

4、可移植、功能强大且在行业中广泛采用和实际的部署服务器无关,可以在桌面计算机上运行免费的服务器用于开发我们项目中用到的 servlet 的作用:读取客户发送的所有数据,查询 HTTP 请求中包含的任何其他请求信息,处理数据并生成结果,设置合适的 HTTP 的响应参数,将响应信息回送给客户端web:什么是 web:含有浏览器的客户端和服务器端,客户端和服务器端通过有线的或无线的网络连接起来的,什么是有线,就例如我们家里用的宽带,无线呢,就例如我们平时用的 wiffy,通过这些网络服务器端和客户端产生的一些交互,就是平时我们上网看电影,购物就是访问 web.那么我们接下来做的 web 项目就是能够在

5、浏览器中访问我们做的项目。就是用户发送请求,例如我想搜一下美女图片,我们是不是应该在客户端打开浏览器,这个浏览器是不是有很多种,比如 IE 浏览器,第一步:在浏览器里输入“美女图片” ,那么输入的这个“美女图片”然后回车,这就是客户端向服务器发送了一次请求,告诉服务器端我要干什么,这个过程是不是就是我发送的一次请求。第二步就是在浏览器中我看到了美女图片,图片是不是浏览器显示出来的?就是我告诉服务器我要美女图片,服务器就给我了美女图片,那么这个过程就是服务器端对客户端发送的请求给的回应。那么总结一下,请求就是浏览器到服务器端,响应就是服务器端到浏览器端。什么是请求和响应?HTTP 请求信息:请求

6、的组成部分:(1).请求行:由 3 个标记方法组成,请求方法,请求 URL 和HTTP 版本,用空格分隔(2).请求头域:有关键字/值对组成,每行一对,关键字和值用冒号分开。(3).空行:最后一个请求头标之后是一个空行(4).请求数据:使用 Post 传送数据,最长使用的是 Content-Type和 Content-length 头标HTTP 响应信息:响应信息的组成部分:(1).状态行:HTTP 版本,响应代码和响应描述(2).响应头标:像请求头标一样,他们指出服务器的功能,标识响应数据细节(3).空行:最后一个响应头标之后是一个空行(4).响应数据:HTML 文档等TTP 协议:(Hyp

7、ertext Transfer Protocl)Hypertext:超文本 Transfer:传输 Protocol: 协议1.0 版本和 1.1 版本(我们用) HHTTP 协议规定 web 的基本运作过程,基于客户 /服务器通信模式,客户端发出请求,服务器端接收 HTTP 请求,再返回相应的 HTTP响应结果http 是一种协议,那么它是有状态的还是无状态的呢?HTTP 无状态:浏览器和服务器之间不需要建立持久的联系,例如:上网看新闻,我打开了一个网页,发送了一次请求,给了我响应,但是并没有记录我看过新闻,这就是无状态HTTP 有状态:浏览器和服务器之间建立了持久的联系,也可以是一段时间的

8、联系,例如,我到网上买东西,我把一件东西放到购物车中,记录我放入购物车里的东西,当我下次登录的时候还会看到购物车里的东西。这就是有状态。超文本传输协议:采用客户/服务器通信模式,服务器端为 HTTP 服务器,也称 web 服务器,客户端为 HTTP 客户程序,浏览器是最常见的 HTTP 客户程序HTTP 请求方式:(1)GET: 客户程序通过这种请求方式,访问服务器上的一个文档,并由服务器把文档发送给客户程序,存储数据量小,不安全,传输快,地址栏长度有限制,最多 2kb,编码格式不支持中文,ISO 8859-1(2)POST:客户程序通过这种方式向服务器发送大量信息,在HTTP 请求中除了包含

9、要访问的文档的 URL,还包括大量的请求正文,会包含 HTTP 表单数据,存储量大,安全,传输慢,地址栏长度在IE 中最多为 2G,编码格式为对应的网页的编码格式(3)HEAD(4)PUT(5)DELETE(6)OPTIONS(7)TRACE在页面中我们最常用的请求方式就是 get 和 post,而为了安全我们在编程的过程中最常用的是 Post状态码:1*:信息提示,表示临时的响应2*:响应成功,表示服务器成功的接收到客户端的请求3*:重定向4*:客户端错误,表明客户端可能出现问题5*:服务器错误,表明服务器由于遇到某种错误而不能响应客户端请求常见的状态码:200:响应成功302:临时重定向4

10、01:未经授权400:错误的请求,客户发送的 HTTP 请求不正确404:文件不存在,在服务器上没有客户要访问的文档(不允许请求的方法)405:服务器不支持客户的请求500:服务器内部错误501:服务器不支持能够满足请求的功能503:服务器不可用URL 和 URI 的区别:(绝对路径和相对路径的区别)URL:统一资源定位符(Uniform Resource Locator),用于完整的描述 Inteernet 上网页和其他资源的地址的一种标识方法组成:协议+ 服务器地址(端口)+ 具体资源路径,如果端口号是该协议的标准端口号,可以省略端口号例:hhtp:/www.soccer.org.8080

11、/laggue/spring200/htmlURI:统一资源标识符(Uniform Resource Identifier),相对于 URL是指资源相对于当前页面的地址,它包含从当前页面指向目标页面位置的路径3 种写法:(1).同一目录下只需要输入连接的文件名(2).上一级目录在目录名和文件名前加“/”(3).下一级目录输入目录名和文件名之间用“/ ”隔开Tomcat:什么是 Tomcat?Tomcat 是一个免费的开放源代码的 web 应用服务器,它是 Apatche软件基金会(Apache Softwar Foundation )的 JAKARTA 项目中的一个核心项目,由 Apache

12、和 SUN 还有一些其他公司及个人共同完成的。由于有了 SUN 的参与和支持最新的 SERVLE 和 JSP 规范总能在 Tomcat 中体现出来因为 Tomcat 性能稳定,而且免费,所以深受 JAVA 爱好者的喜爱,并得到了部分软件开发商的认可,成为当前比较流行的 web 应用服务器。Tomcat 目录结构:(8) Bin:存放启动和关闭 tomcat 脚本。 (9)Conf:存放不同的配置文件,如 server.xml ,Tomcat 的主要配置信息,端口号,HTTP 协议版本等都在里面,tomcat-users.xml,tomcat 的角色。端口号的范围: 0-65535(10) Wo

13、rk:存放 JSP 编译后产生的 class 文件。 (11)Webapps:Tomcat 的主要 Web 发布目录。(12)Logs:存放 Tomcat 执行时的日志文件。 (13)Temp:Java 虚拟机处理文件用的文件夹(14)Lib:存放 tomcat 服务器所需的各种 jar 包访问本机的 tomcat 的三种方法:http:/localhost:8080 http:/127.0.0.1:8080 http:/192.168.4.99:8080常见的端口号:21:ftp 80:http 8080:tomcat mysql:3306 1521:oracle环境变量:Path:指定机器

14、中 javac 和 java 的路径,到 jdk 的 bin 路径Classpath:寻找 servlet 相关所在的路径,到 jdk 中 lib 下的 servlet-api.jarJava_home:启动时需要找到 jvm,到 jdk为了确保 tomcat 正常启动,必须配置 java_home,其他两个可以没有,三个变量都配置的目的:为了正常开发 web 项目应用程序,并且能够发布访问 web 应用程序。启动 Tomcat: E:姚璐Javaapache-tomcat-6.0.36binstartup.bat关闭 Tomcat: E:姚璐Javaapache-tomcat-6.0.36b

15、inshutdown.batCS 与 BS C/S(Client/Server)结构程序,就是指(客户端/服务器)程序,我们主要用 cs 结构来开发面向桌面的应用程序,他最大的特点就是如果你想用这个程序,你必须安装他的客户端到你的电脑上才能使用,并且如果服务器端更新,客户端必须也更新,不然无法使用。比如:qq 和一些大型的网络游戏都是典型的 C/S 结构程序。B/S(Browser/Server)结构程序,就是指(浏览器/服务器)程序,我们主要用 bs 结构来开发面向 Internet 的应用程序。程序完全部署在服务器上,用户通过浏览器访问应用程序,它是基于Internet 的产物。比如:一些

16、购物网站、论坛等都是 B/S 结构程序。目前在应用程序开发方面,以 B/S 结构应用程序开发的比较多,市场比较广,所以我们的课程也主要学习 B/S 结构程序的开发。通过下面的图进一步理解 B/S 结构程序的运行流程Servlet 容器:Servlet 容器有时候也叫做 Servlet 引擎,是 Web 服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务。Servlet 不能独立运行,它必须被部署到 Servlet 容器中,由容器来实例化和调用 Servlet 的方法,Servlet 容器在 Servlet 的生命周期内包容和管理 Servlet。Servlet 类必须部署在

17、一个服务器中才能运行,我们可以管这个服务器叫做 Servlet 容器。Servlet 的作用:读取客户发送的所有数据, ,查询 HTTP 请求中包含的任何其他请求信息,处理数据并生成结果,设置合适的 HTTP 响应参数,将响应信息回送给客户端,servlet 本领高的两个原因:( 1)由 java 语言编写的, (2)由 servlet 容器创建Servlet 的特点:(1) 提供了可被服务器动态加载并执行的程序代码,为来自客户的请求提供相应的服务(2) Servlet 完全 java 语言编写,因此运行 servlet 的服务器必须支持 java 语言(3) Servlet 完全在服务器端运

18、行,因此它的运行不依赖浏览器,不管浏览器是否 zhichijava 语言,都能请求访问服务器端的servletServletJavax.servlet 包:接口:ServletConfig ServeltContext RequestDispatcher Servlet ServletRequest ServletResponse 类:GenericServletJavax.servlet.http 包:类:HttpServlet 继承 GenericServlet接口:HttpServletRequest 继承 ServletRequestHttpServletResponse 继承 Ser

19、vletResponseServlet 常用武器:(1).请求对象:ServletRequest 和 HttpServletRequest,获取来自客户端的请求信息(2).响应对象:ServletResponse 和 HttpServletResponse,生成响应结果(3).Servlet 配置对象 ServletConfig,当容器初始化一个 Servlet 对象时会向 servlet 提供一个 ServletConfig 对象,通过该对象获取初始化参数信息以及 ServletContext 对象(4).Servlet 上下文对象,ServletContext,访问容器当前 web 应用提

20、供的各种资源(5).各接口之间的关系(6).动态结构,各种对象在运行时的协作过程,以及各种对象的生命周期定义一个 servlet 步骤定义一个 Servlet 类,在 javax.servlet 包中定义了所有的Servlet 类都必须实现或扩展的的通用接口和类.在javax.servlet.http 包中定义了采用 HTTP 协议的 HttpServlet 类。我们自己定义的 servlet 需要继承 HttpServlet,而GenericServlet 是 HttpServlet 的父类,我们为什么不继承GenericServlet 而是继承了 HttpServlet?GenericSe

21、rvlet 是抽象类,并且没在 http 包中,HttpServlet 类,是抽象类,继承了GenericServlet,实现了 Servlet 接口,位于 http 包中。我们的请求和响应都是基于 http 协议的,所以我们自定义的 servlet 类需要继承 HttpServlet 类。在多数的网络应用中,都是客户端(浏览器)通过 http 协议去访问服务器的资源,而我们所编写的 servlet 也主要是应用于 http协议的请求和响应。为了快速开发应用于这个协议的 servlet 类,sun 公司提供了 HttpServlet 这个类。HttpServlet 简介:(抽象类)适合用于运行

22、在与客户端采用 Http 协议通信的 servlet 容器或者服务器中,在 Java Web 应用时,自定义的 Servlet 类一般都扩展HttpServlet,HttpServlet 实现了 Servlet 接口中的service(ServletRequest req ,ServletResponse res)方法,该方法实际上调用的是它的重载方法 service(HttpServletRequest req,HttpServletResponse res),service 处理请求时首先调用HttpServletRequest 类型的参数的 getMethod()方法,从而获得客户端的请

23、求方式,再根据请求方式调用方法,如果是 Get 就调用doGet 方法,如果是 Post 就调用 doPost 方法HttpServletRequest 和 HttpServletResponse 接口Servlet 由 Servlet 容器来管理,当客户请求到来时,容器创建一个 ServletRequest 对象,封装请求数据,同时创建一个ServletResponse 对象,封装相应数据。而 ServletResponse 和ServletRquest 还有子接口 HttpServletRequest 和HttpServletResponse 接口,父接口是通用的请求和响应,但是我们目前应

24、用的都是基于 http 协议的,所以用他的子接口。HttpServletRequest,代表客户端传送过来的请求,包含了 ip地址、form 表单的参数等信息。HttpServletResponse,代表服务器给客户端的响应。HttpServletRequest 和 HttpServletResponse 专门来处理 http请求和响应。Web.xml 文件:当我们编写好 servlet 之后,如何让 tomcat 知道,这个 java 类是和某个请求路径对应的呢,就是通过 web.xml 配置文件。servlet-name 用于指定 servlet 名字,在同一个 web 程序中,每一个 s

25、ervlet 的名字必须是唯一的,该元素的内容不能为空。servlet-class 用于指定 servlet 类的完全限定名;servlet-mapping 节点用于在 servlet 于 url 之间定义一个映射,这里面的servlet-name 的值必须与上面的一致,url-pttern 用于指定对应的url 路径。配置例子:myfirst 指定servlet 的逻辑名HelloServlet 对应的类名(完全限定名)不要忘了包名myfirst 逻辑名 与上面的一致/helloServlet 指定客户端在地址栏里面输入什么能访问到这个 servlet(斜杠表示从项目名开始)Servlet

26、生命周期不同阶段调用的不同方法Servlet 运行在 Servlet 容器中,其生命周期由容器(如:Tomcat)来管理。Servlet 的生命周期通过 javax.servlet.Servlet 接口中的 init( )、service( )、 destroy( )等方法来完成。init(ServletConfig config):初始化 Servlet 对象,容器在创建好Servlet 对象后就调用service(ServletRequest req,ServletResponse res):响应客户请求,当容器接收到客户端要求访问特定的 Servlet 对象时就会调用destroy():

27、释放 Servlet 对象占用的资源,当 servlet 对象结束生命周期时,容器就会调用(服务器重启或者 web 项目重新加载时调用)getServletConfig():返回 ServletConfig 对象, ,在该对象中包含了servlet 初始化信息getServletInf():Servlet 的生命周期包含了四个阶段:实例化阶段创建 servlet 类的对象初始化阶段对象调用初始化方法服务阶段-调用 service()方法,根据提交方式调用 doget 或dopost 方法销毁阶段-调用 destroy()方法销毁在这几个生命周期中会分别调用 servlet 的不同方法,其中实例

28、化阶段调用 servlet 的缺省构造函数,创建 servlet 对象后,会立即调用 init()方法,根据请求,调用 service 方法。通过下图进一步理解 Servlet 的生命周期:例 例 例 Servlet例 例 Servlet1 : 例 例 request()2 : 例 例 例 例 ()3 : 例 例 例 例 例 ()4 : 例 例 init()5 : 例 例 service()6 : 例 例 ()7 : 例 例 () 8 : 例 例 destroy()当客户端一个请求到来时,tomcat 首先根据请求的 URL 得到相应的 servlet,然后调用该 servlet 的 serv

29、ice()方法,并根据是get 还是 post 请求调用 doget 和 dopost 方法,这两个方法的输出作为响应内容发送给客户端。当我们要关闭 tomcat 时,tomcat 在退出前,还要负责释放 servlet 所释放的资源。通过程序验证四个阶段的执行特点Servlet 中获取数据通过请求参数request来获取的,可以通过HttpServletRequest中的方法来获取数据。String getParameter(String name) 根据页面表单组件名称获取页面提交数据String getParameterValues(String name) 获取表单中多值控件提交的信息

30、 ,参数为控件名称。如复选框中的值Servlet 中实现输出 html 页面需要通过参数 response 来作出响应,可以通过HttpServletResponse 中的方法来实现。PrintWriter getWriter( ) 返回 PrintWriter 对象 PrintWriter 可以向客户端输出字符。通常我们习惯给这个类型的对象起名叫做 out。Servlet 中代码实现PrintWriter out=response.getWriter();out.println(“用户名:“+name+“);out.println(“密码:“+pwd+“);解决乱码问题设置提交信息的字符编码

31、,通过 HttpServletRequest 中的方法来实现: ,参数为”utf-8”时,设置提交字符编码为支持中文。例:request.setCharacterEncoding(“utf-8“);设置响应信息的字符编码,HttpServletResponse 中的方法来实现:例:response.setContentType(“text/html; charset=UTF-8“);或response.setCharacterEncoding(“utf-8“);请求转发请求转发就是指将用户的请求转发给另外一个 Servlet 或页面,然后由它们进行处理并产生对请求的响应。HttpServlet

32、Request 中具有方法 getRequestDispatcher,这个方法是ServletRequest 中的方法,方法的返回值是 RequestDispatcher 类型的对象。public RequestDispatcher getRequestDispatcher (java.lang.String path)在 Servlet 中,利用 RequestDispatcher 对象,可以将请求转发给另外一个 Servlet 或 JSP 页面,甚至是 HTML 页面,来处理对请求的响应。RequestDispatcher 对象具有的 public void forward(Servlet

33、Request request, ServletResponse response) 这个方法能够实现将请求转发给另外的页面。request.getRequestDispatcher(“success.html“).forward(request, response);HttpServletRequest对象的生命周期: 从一个请求开始,到这个请求处理结束。而且只要刷新页面,request 也将失效。请求转发的特点:请求转发后,不会产生新的请求,会继续沿用原来的请求请求转发后,地址栏显示的是原页面的URL请求转发时用到的接口RequestDispatcher,在这个接口中定义了两个方法:1)f

34、orward (ServletRequest request ,ServletResponse response)必须在响应提交给用户之前调用。2)include(ServletRequest request,ServletResponse response)3)区别:include()将请求转发给其他的Servlet,被调用的Servlet对该请求做出的响应将并入原先的响应对象中,原先的Servlet还可以继续输出响应信息。forward():将请求转发给其他的Servlet,将由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。重定向重定向就是指将用户的请求重定向

35、给另外一个 Servlet 或页面,然后由它们进行处理并产生对请求的响应。HttpServletResponse 类的 public void sendRedirect(java.lang.String location) 能够实现重定向的页面跳转。但是与请求转发的原理不一样。Response.sendRedirect(“success”); 重定向的特点:重定向后,会产生一个新的请求重定向后,地址栏显示的是目标页面的 URL请求转发和重定向的区别2 种跳转完成同样的功能,但是区别非常大:在地址栏中,用重定向跳转后地址栏会显示目标页面。请求转发地址栏显示源页面区别在于请求的次数:请求转发 请求

36、没变;重定向 会产生新的请求request.getRequestDispatch(“T2.jsp”).forward(request,response);相当于将本次的请求和响应转发给你请求转发不能跳转到其他项目中,只能在本项目内跳转,重定向可以跳转到其他项目中HTTP 协议的特点HTTP 协议是无状态的协议,发送的请求不记录用户的状态,不记录用户的信息。就相当于它被访问了 2 次,不知道是哪两人访问的,或者是一个人访问两次。正是因为 HTTP 协议的这一特点,用户的活动发生在多个请求和响应之中,作为 web 服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态。比如说我们平

37、时上的 qq.可以设置登录状态,记住密码,之后我们在一段时间内就可以不用输入密码直接输入,那么 Http 协议是无状态的,我们怎么可以让他记住我们的状态呢,就是通过会话跟踪技术什么是会话:就像我和一个人之间的对话会话跟踪技术有哪几种?Cookie Session 隐藏表单域(hidden) URL 重写什么是 Cookie:Cookie 的中文意思是点心的意思Cookie 是保存到客户端的一个文本文件,与特定客户相关。Cookie 是一种由服务器发送给客户的片段信息,存储在客户端浏览器的内存中或硬盘上,cookie 存活在本地,在客户随后对该服务器的请求中发回它。Cookie 以“键- 值”对

38、的形式记录会话跟踪的内容,服务器利用响应报头 set-cookie 来发送 cookie 信息。创建 cookie创建 Cookie:new Cookie(name,value)可以使用 Cookie 的 setXXX 方法来设定一些相应的值setName(String name)/getName()setValue(String value)/getValue()setMaxAge(int age)/getMaxAge()利用 HttpServletResponse 的 addCookie(Cookie)方法将它设置到客户端利用 HttpServletRequest 的 getCookies

39、()方法来读取客户端的所有Cookie,返回一个 Cookie 数组cookie 的分类Cookie 分两种 放在内存中 一旦浏览器关闭 就消失了Cookie c1=new Cookie(“,“);response.addCookie(c1);一种是属于文本 有生命周期的可以通过 serMaxAge(600);这个方法设置 毫秒为单位 表示这个cookie 的有效时间保存到硬盘上的 cookie 可以在多个浏览器之间共享,也就是说,两个浏览器在访问同一个 url 时,使用的是同一个 cookie 信息。cookie 的缺点Cookie 对用户是透明的,并且保存在磁盘上,持久性高,可以长时间的跟

40、踪用户,了解用户上网的习惯,并且保存用户的名和密码等敏感信息有很大的安全隐患,而用户在网上的一举一动,就有可能成为某些网站的赚钱机会,这就会造成一些隐私权和安全性方法的问题。而且我们也可以在浏览器中禁用 cookie,就可以阻止所有的cookie,那么只要跟 cookie 相关的操作就失效了cookie 的应用 1设置 cookieCookie cookie = new Cookie(“Session-Cookie-“ + i, “Cookie-Value-S“ + i);response.addCookie(cookie);/ 设置 cookie 的有效时间 单位为毫秒cookie.setM

41、axAge(600);response.addCookie(cookie);读取客户端的 CookieCookie cookies = request.getCookies();if (cookies != null) Cookie cookie;for(int i=0; in“ +“ “ + cookie.getName() + “n“ +“ “ + cookie.getValue() + “n“ );out.println(“);session客户端可以阻止服务器写入 cookie 所以说 cookie 不太可靠 另外也不安全更安全的是基于 session 的 HttpSession 对象

42、服务器为每个会话创建一个 HttpSession 对象 每个会话对象都有一个唯一的 ID 把用户的数据保存在相应的 HttpSession 对象内原理:用户第一次发送请求的时候,服务器创建一个 HttpSession 对象,并把该对象的 id 返回给用户,同时服务器在内存中开辟一空间,用来保存该对象数据,服务器将此 id 发送回客户端做出响应;用户第二次发送请求的时候把 id 一起发送给服务器,服务器根据 id 号寻找相应的数据。创建和使用 session会话的创建使用 HttpServletRequest 的 getSession() 方法创建会话,获取 session 对象两个方法:get

43、Session();(=getSession(true); ) getSession(boolean b);,HttpSession session = request.getSession(true); true: 返回与当前关联的会话,如果没有就创建后将其返回false: 返回与当前关联的会话,如果没有返回 null使用 sessionsession.setAttribute(String param,Object value);存值session. getAttribute(String param);取值session 的生命周期session 的创建浏览器访问服务器时,服务器为每个浏览器创建不同的session 对象session 的关闭调用 session. invalidate()方法,使 session 对象失效(安全退出)访问时间间隔大于非活动时间间隔, session 对象失效关闭浏览器时,session 对象失效(也相当于第二种现象)可以设置 session 的有效时间,服务器默认 30 分钟。一般点击退出的时候,会调用 invalidate()这个方法生命周期总结:从一个客户端打开浏览器并连接到服务器开始,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报