ImageVerifierCode 换一换
格式:PPTX , 页数:42 ,大小:732.10KB ,
资源ID:4282548      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4282548.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(轻松学JavaWeb开发之Servlet编程.pptx)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

轻松学JavaWeb开发之Servlet编程.pptx

1、第5章Servlet编程Servlet是Java Web程序的核心。JSP和几乎所有的Java Web框架(如Struts、Webwork)在底层的实现都会看到Servlet的影子。因此,充分了解Servlet的原理和使用方法,对于以后学习Struts等Web框架将起到非常大的帮助。本章我们将为大家介绍Servlet的基础知识,并通过具体的示例介绍Servlet的强大功能。5.1 Servlet基础Servlet在本质上就是Java类。编写Servlet需要遵循Java的基本语法,但是与一般Java类所不同的是。Servlet是只能运行在服务器端的Java类,而且必需遵循特殊的规范,在运行的过

2、程中有自己的生命周期。5.1.1 什么是ServletServlet是运行于服务器端的、按照其自身规范编写的Java应用程序。我们可以用图5.1来解释这个概念。Servlet的主要功能是用来接受、处理客户端请求,并把处理结果返回到客户端显示。其作用过程如图5.2所示。5.1.2 Servlet的生命周期Servlet需要在特定的容器中才能运行,在这里所说的容器即Servlet运行的时候所需的运行环境。一般情况下,市面上常见的Java Web Server都可以支持Servlet,例如Tomcat、Resin、Weblogic、WebSphere等,在本书中采用Tomcat作为Servlet的容

3、器,由Tomcat为Servlet提供基本的运行环境。Servlet的生命周期指的是Servlet从被Web服务器加载到它被销毁的整个生命过程。这个过程如图5.3所示。5.1.2 Servlet的生命周期从图5.3中我们呢可以看出,Servlet生命周期的执行大致分为4个步骤,如图5.4所示。在以上几个阶段中,Servlet对外提供服务阶段是最重要的。service()方法是编程人员真正要关心的方法。因为它才是Servlet真正开始响应客户端请求,并且处理业务逻辑的方法。service()接收到客户端请求后,再调用该Servlet的相应的方法去处理请求。所以程序员在编写自己的Servlet时,

4、一般只需要重写方法。在该方法中去处理客户端请求,并把处理结果返回。5.2 简单Servlet开发配置示例在这一节中我们主要应用Servlet编写一个HelloWorld程序,实现向客户端浏览器中输出“HelloWorld”信息。在系统中创建的第一个Servlet程序系统会为我们自动生成web.xml配置文件,但是以后的Servlet程序就需要我们自己来配置了。即一般情况下都需要在当前应用项目的web.xml配置文件中对各个Servlet进行配置,其中web.xml文件的位置在当前项目应用的WEB-INF文件夹下。我们就结合图5.8的示例来讲解如何对Servlet进行配置,如图5.9所示。5.2

5、 简单Servlet开发配置示例总之,编写一个Servlet要经过以下三个步骤:(1)编写Servlet的功能代码,即实现功能的代码类。(2)把编译成功的Servlet功能代码类文件拷贝到当前应用项目的WEB-INF/classes目录下。(3)在当前应用项目的web.xml文件中对Servlet进行配置,即在web.xml中添加配置信息。经过这样三个步骤我们就可以通过浏览器访问这个Servlet了。5.3 使用HttpServlet处理客户端请求HttpServlet是使用HTTP协议的Web服务器的Servlet类,这个类已经被系统定义好。该类的一些方法,如doGet()方法、doPost

6、)方法等,提供了处理客户端请求的接口。在实际编程中,程序员需要继承这个类,并重写上述方法,去编写自己的Servlet。使用重写后的方法,就可以完成对客户端请求进行处理。5.3.1 处理Get请求doGetdoGet()方法是HttpServlet类中用来处理Get请求的方法。用户通过继承HttpServlet,重写doGet()方法,实现对客户端的Get请求进行处理。要调用doGet()方法,必须在客户端的表单里指定请求的类型为Get。doGet()方法的语法格式如图5.10所示。5.3.2 处理Post请求doPostdoPost()是HttpServlet中用于处理Post请求的方法。如

7、果要调用doPost()方法,必须在表单中指定Post请求。doPost()方法与doGet()方法的用法一般来说没什么区别,doGet()方法用于处理http get请求,doPost()方法用于外理http post请求。至于它们的不同,简单的说,get是通过http header来传输数据,有字数限制,而post则是通过http body来传输数据,没有字数的限制。doPost()方法的语法格式如图5.14所示。5.3.2 处理Post请求doPost下面我们来为大家介绍一下javax.servlet.http提供的HTTP Servlet应用编程接口。创建Servlet,需要扩展Htt

8、pServlet类,HttpServlet类包含init()、destroy()、service()等方法,其中init()和destroy()方法是继承的。具体的方法及方法描述如表5.1所示。当服务器调用sevlet的Service()、doGet()和doPost()这三个方法时,均需要“请求”和“响应”对象作为参数。“请求”对象提供有关请求的信息,而“响应”对象提供了一个将响应信息返回给浏览器的一个路径。方法名方法名方法描述方法描述init()方法方法服务器装入Servlet时执行。可以配置服务器,在启动服务器或客户机首次访问Servlet时装入Servletservice()方法方法S

9、ervlet的核心。每当一个客户请求一个HttpServlet对象,该对象的service()方法就要被调用,而且传递给这个方法一个请求(ServletRequest)对象和一个响应(ServletResponse)对象作为参数destroy()方法方法在服务器停止且卸装Servlet时执行该方法。可以将Servlet作为服务器进程的一部分来关闭GetServletConfig()方法方法GetServletConfig()方法返回一个ServletConfig对象,该对象用来返回初始化参数和ServletContext。ServletContext接口提供有关servlet的环境信息GetS

10、ervletInfo()方法方法GetServletInfo()方法是一个可选的方法,它提供有关servlet的信息,如作者、版本、版权等5.4JSP页面调用Servlet在上面HelloWorld的示例程序中,我们直接在浏览器中输入具体的地址进行访问。在实际的应用中,不可能让用户在浏览器中直接输入Servlet的地址进行访问。一般情况下,可以通过调用Servlet进行访问,在这里介绍通过提交表单和超链接两种方式调用Servlet。5.4.1 通过表单提交调用Servlet在通过提交表单调用Servlet的时候,只需要把表单的action指向对应的Servlet即可。5.4.2 通过超链接调用

11、Servlet当用户有输入的内容需要提交给服务器时,我们可以用表单来调用Servlet。如果在没有输入的数据内容需要提交的情况下,我们可以直接通过超链接的方式来调用Servlet,并对其传递参数。5.5Servlet文件操作在JSP的开发过程中,我们常常把相关内容存储为文件。在Servlet中我们可以使用输入输出流实现对文件的读写。同时,使用Servlet还可以很方便的实现文件的下载操作。这一节我们就来学习如何实现Servlet的文件操作。5.5.1 Servlet读取文件我们举一个实例FileRead.java来读取一个文本文件content.txt的内容,并且在页面上打印文件的内容。5.5

12、2 Servlet写文件Servlet写文件的处理方法和读取文件的处理方法非常类似,即把文件输入流换成文件输出流。我们也可以来看一个写文件示例。5.5.3 Servlet下载文件利用Servlet可以很方便地实现文件的下载,我们只需要对服务器的响应对象response进行简单的设置即可。5.6 Servlet的应用Servlet是与HTTP协议紧密结合的,使用Servlet几乎可以处理HTTP协议各个方面的内容,在本节的几个示例程序中,将集中展示Servlet在HTTP方面的具体应用。5.6.1 获取请求信息头部内容当用户访问一个页面的时候,会提交一个HTTP请求给服务器的Servlet引擎

13、在这个请求中包含了HTTP文件的详细属性信息。我们可以应用request.getHeaderNames()方法来获取请求信息头部内容。5.6.2 获取请求信息在上面的Servlet示例中,我们取出了HTTP文件头信息,在Servlet中还可以很方便取出用户发出请求对象自身的信息。这些信息是和用户的请求密切相关的,例如用户提交请求所使用的协议,客户提交表单的方法是POST还是GET等。5.6.3 获取参数信息有关用户请求的参数信息,也可以通过Servlet来获取。这种参数既包括以POST方法或者是GET方法提交的表单,也包括直接使用超链接传递的参数。Servlet都可以使用request.ge

14、tParameter()方法取得这些参数信息并且加以处理。5.6.4 Cookie操作Cookie是一种在客户端保存信息的技术。读者在浏览网页时可能会注意到这样的现象,如在打开某个登录网页时,在第一次打开时,用户名文本框是空的,当输入一个用户名,并成功登录后。在第二次打开这个登录网页时,在第一次输入的用户名会被自动填入这个用户名文本框,就算重启计算机后,仍然如此。其实这就是Cookie所起的作用。5.6.4 Cookie操作在Servlet中,使用java.servlet.http.Cookie类来封装一个Cookie消息,在HttpServletResponse接口中定义了一个addCook

15、ie方法来向浏览器发送Cookie消息(也就是Cookie对象),在HttpServletRequest接口中定义了一个getCookies方法来读取浏览器发送的Web服务器的所有Cookie消息。Cookie类中定义了生成和提取Cookie消息的各个属性的方法。Cookie类只有一个构造方法,它的语法结构如图5.47所示。5.6.4 Cookie操作Cookie类中的其他常用方法如表5.3所示。方法名方法名方法描述方法描述getName方法方法用于获得Cookie的名称setValue和和getValue方法方法分别用于设置和获得Cookie的值setMaxAge和和getMaxAge方方法

16、法分别用于设置和获得Cookie在客户机的有效时间,也就是在在客户机上的有效秒数setPath和和getPath方法方法分别用于设置和获得当前Cookie的有效Web路径setDomain和和getDomain方法方法分别用于设置和获得当前Cookie的有效域setComment和和getComment方法方法分别用于设置和返回当前Cookie的注释部分setVersion与与getVersion方法方法分别用于设置和获得当前Cookie的协议版本setSecure和和getSecure方法方法分别用于设置和获得当前Cookie是否只能使用安全的协议传输Cookie5.7 Session技术s

17、ession对象用来保存每个用户的用户信息和会话状态。session对象由服务器端自动创建,可以跟踪每个用户的操作状态。用户首次登录系统时服务器会自动给用户分配唯一标识的session id,可以用来区分开其他用户。相对于Cookie,session是存储在服务器端的会话,相对安全,而且其存储长度限制也大大的扩大了。5.7.1 HttpSession接口方法在Servlet中使用HttpSession对象来描述Session。一个HttpSession对象就是一个Session。使用HttpServletRequest接口的getSession方法来获得一个HttpSession对象。Http

18、Session接口中的主要方法如表5.4所示。方法名方法名方法描述方法描述getId方法方法用于返回当前HttpSession对象的SessionIDgetCreationTime方法方法用于返回当前的HttpSession对象的创建时间getLastAccessedTime方法方法用于返回当前HttpSession对象的上一次被访问的时间setMaxInactiveInterval和和getMaxInactiveInterval方法方法分别用来设置和返回当前HttpSession对象的可空闲的最长时间(单位:秒),这个时间也就是当前会话的有效间隔isNew方法方法用来判断当前的HttpSes

19、sion对象是否是新创建的,如果是则返回true,否则返回falseisvalidate方法方法用于强制当前的HttpSession对象失效,这样Web服务器可以立即释放该HttpSession对象getServletContext方法方法用于返回当前HttpSession对象所属的Web应用程序的ServletContext对象setAttribute方法方法用于将一个String类型的ID和一个对象相关联,并将其保存在当前的HttpSession对象中getAttribute方法方法用于返回一个和String类型的ID相关联的对象remoteAttribute方法方法用于删除与一个Stri

20、ng类型的ID相关联的对象5.7.1 HttpSession接口方法getSession是HttpServletRequest接口的方法,这个方法用于返回与当前请求相关的HttpSession对象,该方法有两种重载形式,它们的定义语法如图5.52所示。5.7.2 通过Cookie跟踪Session客户端必须通过一个SessionID才能找到以前在服务端创建的某一个HttpSession对象。通过SessionID找HttpSession对象的过程也叫做Session跟踪。一般客户端的SessionID通过HTTP请求消息头的Cookie字段发送给服务端,然后服务端通过getSession方法读

21、取Cookie字段的值,以确定是否需要新建一个HttpSession对象,还是获得一个已经存在的HttpSession对象,或是什么都不做,直接返回null。当HttpSession对象是第一次创建时,向这个对象中写一个字符串值。如果HttpSession对象不是第一次创建,那么就将保存在HttpSession对象中的字符串值输出到客户端。5.7.3 通过重写URL跟踪Session如果客户端浏览器不支持Cookie或是将Cookie功能关闭,那么就无法使用Cookie来传递SessionID。为了在这种情况下仍然可以使用Session,Servlet规范提供了一种补充会话管理机制。这种管理机

22、制允许在Cookie无法工作的情况下使用URL参数来传递SessionID。要想通过URL来发送SessionID,必须要重写URL。HttpServletResponse提供了两个方法用于重写URL,如图5.56所示。5.8 Servlet过滤器过滤器是小型的Web组件,它负责拦截请求和响应,以便查看、提取或以某种方式操作正在客户机和服务器之间交换的数据。Servlet过滤器应用非常广泛,有拦截的地方一般都可以用到过滤器。当前Web应用中过滤器已经是不可或缺的部分之一。5.8.1 过滤器的方法和配置与过滤器相关的Servlet共包含3个简单的接口,分别是Filter、FilterChain及

23、FilterConfig。要实现过滤器功能,必须先实现Filter接口。Filter接口定义了3个方法,如图5.61所示。Servlets过滤器是一个Web应用组件,和Servlet类似,也需要在Web应用配置文件(即web.xml)中进行配置部署。5.8.1 过滤器的方法和配置对于过滤器的映射配置,可以将过滤器映射到一个或多个Servlet和JSP文件中。以Servlet为例,我们来看其映射配置,如图5.63所示。注意:在web.xml中配置Servlet和Servlet过滤器,应该先声明过滤器元素,再声明Servlet元素。5.8.2 过滤器应用实例禁止未授权的IP访问站点在实际的应用中,

24、可能会遇到这样的情况,需要对某些IP进行访问限制,不让非法的IP访问应用系统,这个时候就需要用到过滤器进行限制,当一个用户发出访问请求的时候,首先通过过滤器进行判断,如果用户的IP地址被限制,就禁止访问,只有合法的IP才可以继续访问。5.8.3 过滤器应用实例版权过滤器现在的网页都会在尾部加上版权标志,对于这一操作,我们可以运用过滤器很方便地实现它。5.9 Servlet监听器Servlet监听器是当今Web应用开发的一个重要组成部分。Servlet监听器主要用来对Web应用进行监听和控制,极大地增强了Web应用的事件处理能力。一般来说,Servlet监听就是指一些特殊的Servlet类,这些

25、类可以监听Web应用的上下文信息、Servlet会话信息、Servlet请求信息。在实际操作中,程序员需要继承或实现一些已定义好的类或接口,从而编写出自己用于监听的类。这些类对特定的信息进行监听。一旦被监听的事件发生,这些类会自动调用相应的方法去执行指定的操作。5.9.1监听Servlet上下文信息Servlet上下文信息主要是指关于ServletContext接口的一些信息,比如ServletContext的创建和删除,Servlet属性的增加、删除和修改等。这样就可以实现对Servlet上下文信息的跟踪和记录。为了实现这样的功能,程序员需要实现ServletContextListener和

26、ServletContextAttributeListener接口,从而编写出自己的Servlet类。ServletContext接口的主要方法如表5.4所示。方法名称方法名称方法描述方法描述getAttribute(String name)返回Servlet环境对象中指定的属性对象。如果该属性对象不存在,返回空值getAttributeNames()返回一个Servlet环境对象中可用的属性名的列表getContext(String uripath)返回一个Servlet环境对象,这个对象包括了特定URI路径的Servlets和资源,如果该路径不存在,则返回一个空值getRealPath(S

27、tring path)返回与一个符合该格式的虚拟路径相对应的真实路径的StringgetResource(String uripath)返回一个URL对象,该对象反映位于给定的URL地址的Servlet环境对象已知的资源getServerInfo()返回一个String对象,该对象至少包括Servlet引擎的名字和版本号void log(String msg,Throwable t)写指定的信息到一个Servlet环境对象的log文件中setAttribute(String name,Object o)给予Servlet环境对象中你所指定的对象一个名称removeAttribute(Strin

28、g name)从指定的Servlet环境对象中删除一个属性5.9.1监听Servlet上下文信息在使用这个监听器之前还需要对Web模块中的web.xml配置文件进行配置,配置代码如图5.75所示。然后我们就可以编写一个JSP程序testListener.jsp来操作ServletContext的属性,看监听器程序做出什么反应。5.9.2 监听HTTP会话信息HTTP会话信息指的是Session对象的创建和销毁、会话中属性的设置请求、会话的状态和会话的绑定信息等。通过对HTTP会话信息的监听,可以进行一些很有用的操作,比如,统计当前会话的数目、设置某个对话的属性、了解某个对话的状态等。与Serv

29、letContext监听的实现方法类似,对HTTP会话的监听也是通过实现特定的接口来完成的。监听HTTP会话信息需要使用到三个接口类:HttpSessionListener、HttpSessionActivationListener和HttpSessionAttributeListener接口。5.9.2 监听HTTP会话信息这些接口的主要方法如表5.5所示。方法名方法名方法描述方法描述sessionCreated(HttpSessionEvent arg0)方法方法进行Http会话创建的监听,如果Http会话被创建将调用该方法sessionDestroyed(HttpSessionEvent

30、 arg0)方法方法对Http会话销毁进行监听,如果某个Http会话被释放将调用该方法sessionDidActivate(HttpSessionEvent arg0)方法方法对Http会话处于active情况进行监听sessionWillPassivate(HttpSessionEvent arg0)方法方法对Http会话处于passivate情况进行监听attributeAdded(HttpSessionBindingEvent arg0)方方法法对Http会话中属性添加进行监听attributeReplaced(HttpSessionBindingEvent arg0)方法方法对Http

31、会话中属性修改进行监听attributeRemoved(HttpSessionBindingEvent arg0)方法方法对Http会话中属性删除进行监听5.9.3对客户端请求进行监听客户端请求信息是指请求对象的创建、销毁以及其属性的添加、更改和删除。一旦可以对客户端发向服务器的请求进行监听,就可以对它们进行识别,然后统一处理。对客户端请求信息的监听的实现方法与上面两种类似,通过实现ServletRequestListener和ServletRequestAttributeListener接口来完成。这些接口的主要方法如表5.6所示。方法名方法名方法描述方法描述ServletRequestLi

32、stener()方法方法监听客户端请求的创建和销毁attributeAdded(HttpSessionBindingEvent arg0)方法方法对Http会话中属性添加进行监听attributeReplaced(HttpSessionBindingEvent arg0)方法方法对Http会话中属性修改进行监听attributeRemoved(HttpSessionBindingEvent arg0)方法方法对Http会话中属性删除进行监听5.10 小结本章首先介绍了Servlet编程方面的基础知识,然后在此基础上介绍了Servlet的配置和处理方法,接着我们为大家讲解了如何利用JSP页面调用Servlet和有关Servlet的文件操作,最后我们通过实例讲解了Servlet的具体应用和过滤器、监听器的知识。本章的重点是Servlet的文件操作以及Servlet应用方面的知识,难点是难点是Session技术以及Servlet过滤器、监听器知识的理解和应用。熟练掌握Servlet是学好Java Web技术的基本要求,所以读者要多加练习,以打好基础。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服