《JSP-Web开发基础教程(微课版)》ch07_第1页
《JSP-Web开发基础教程(微课版)》ch07_第2页
《JSP-Web开发基础教程(微课版)》ch07_第3页
《JSP-Web开发基础教程(微课版)》ch07_第4页
《JSP-Web开发基础教程(微课版)》ch07_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1页第7章Servlet技术

本章概述本章的学习目标主要内容第2页本章概述Servlet是运行在服务器上的一个Java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。Servlet先于JSP产生,可以方便地对Web应用中的HTTP请求进行处理。在JavaWeb程序开发中,Servlet主要用于处理各种业务逻辑,它比JSP更具有业务逻辑层的意义,而且Servlet的安全性、扩展性以及性能方面都十分优秀,它在JavaWeb程序开发及MVC模式的应用方面起到了极其重要的作用。第3页本章的学习目标了解Servlet与JSP的区别了解Servlet的代码结构掌握如何创建与配置Servlet掌握Servlet的处理流程掌握使用Servlet如何处理表单数据第4页主要内容7.1Servlet基础

7.2ServletAPI编程常用接口和类7.3Servlet开发

7.4本章小结

第5页7.1Servlet基础

7.1.1Servlet结构体系7.1.2Servlet技术特点7.1.3Servlet与JSP的区别7.1.4Servlet代码结构第6页7.1.1Servlet结构体系J2EE架构中的Servlet结构体系的UML图如图所示。

第7页7.1.2Servlet技术特点Servlet容器提供了对应用的相关扩展,在功能、性能、安全等方面都十分优秀,其技术特点表现在以下几方面:功能强大可移植性能高效安全性高可扩展

第8页7.1.3Servlet与JSP的区别Servlet与JSP貌似相同,实质存在一定的区别,主要表现在以下几方面:角色不同编程方法不同Servlet需要编译后运行速度不同第9页7.1.3Servlet与JSP的区别Servlet与JSP貌似相同,实质存在一定的区别,主要表现在以下几方面:角色不同编程方法不同Servlet需要编译后运行速度不同第10页7.1.4Servlet代码结构在Java中,通常所说的Servlet是指HttpServlet对象。在声明一个对象为Servlet时,需要继承HttpServlet类。HttpServlet类是Servlet接口的一个实现类,继承该类后,可以重写HttpServlet类中的方法对HTTP请求进行处理。第11页主要内容7.1Servlet基础7.2ServletAPI编程常用接口和类7.3Servlet开发

7.4本章小结

第12页7.2ServletAPI编程常用接口和类7.2.1Servlet接口7.2.2ServletConfig接口7.2.3HttpServletRequest接口7.2.4HttpServletResponse接口7.2.5GenericServlet类 7.2.6HttpServlet类第13页7.2.1Servlet接口Servlet的运行需要Servlet容器的支持。Servlet容器通过调用Servlet对象提供了标准的API接口,对请求进行处理。在Servlet开发中,任何一个Servlet对象都要直接或间接地实现javax.servlet.Servlet接口。方法说明publicvoidinit(ServletConfigconfig)容器在创建好Servlet对象后,就会调用此方法。该方法接受一个ServletConfig类型的参数,Servlet容器通过这个参数向Servlet传递初始化配置信息publicvoidservice(ServletRequestrequest,ServletResponseresponse)负责响应用户的请求,当容器接收到客户端访问Servlet对象的请求时,就会调用此方法。容器会构造一个表示客户端请求信息的ServletRequest对象和一个响应客户端的ServletResponse对象作为参数传递给service()方法。在service()方法中,可以通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息publicvoiddestroy()负责释放Servlet对象占用的资源。当服务器关闭或者Servlet对象被移除时,Servlet对象会被销毁,容器会调用此方法publicServletConfiggetServletConfig()用于获取Servlet对象的配置信息,返回Serclet的ServletConfig对象publicStringgetServletInfo()返回一个字符串,其中包含关于Servlet的信息,例如,作者、版本和版权等信息第14页7.2.2ServletConfig接口ServletConfig接口位于javax.servlet包中,它封装了Servlet的配置信息,在Servlet初始化期间被传递。每一个Servlet都有且只有一个ServletConfig对象。该对象提供了4个方法,如表所示。ServletConfig类的三大作用:可以获取Servlet程序的别名servlet-name的值;获取初始化参数init-param;获取ServletContext对象。方法说明publicStringgetInitParameter(Stringname)返回String类型名称为name的初始化参数值publicEnumerationgetInitParameterNames()获取所有初始化参数名的枚举集合publicServletContextgetServletContext()用于获取Servlet上下文对象publicStringgetServletName()返回Servlet对象的实例名第15页7.2.3HttpServletRequest接口在ServletAPI中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口。HttpServletRequest对象专门用于封装HTTP请求消息,简称request对象。HTTP请求消息分为请求行、请求消息头和请求消息体三部分,所以HttpServletRequest接口中定义了获取请求行、请求头和请求消息体的相关方法。第16页7.2.3HttpServletRequest接口获取请求行信息方法说明publicStringgetContextPath()返回当前Servlet所在的应用的名字(上下文)。对于默认(ROOT)上下文中的Servlet,此方法返回空字符串""publicCookie[]getCookies()返回请求中发送的所有cookie对象,返回值为cookie数组publicStringgetMethod()该方法用于获取HTTP请求方式(如GET、POST等)publicStringgetQueryString()该方法用于获取请求行中的参数部分,也就是URL中“?”以后的所有内容publicStringgetRequestURI()该方法用于获取请求行中的资源名称部分,即位于URL的主机和端口之后,参数部分之前的部分publicStringBuffergetRequestURL()返回请求的URL。此URL中不包含请求的参数。注意此方法返回的数据类型为StringBufferpublicStringgetServletPath()该方法用于获取Servlet所映射的路径publicHttpSessiongetSession()返回与请求关联的HttpSession对象publicStringgetRemoteAddr()该方法用于获取客户端的IP地址publicStringgetRemoteHost()该方法用于获取客户端的完整主机名,如果无法解析出客户机的完整主机名,则该方法将会返回客户端的IP地址第17页7.2.3HttpServletRequest接口2.获取请求头信息方法说明publicStringgetHeader(Stringname)该方法用于获取一个指定头字段的值。如果请求消息中包含多个指定名称的头字段,则该方法返回其中第一个头字段的值publicEnumerationgetHeaders(Stringname)该方法返回指定头字段的所有值的枚举集合,在多数情况下,一个头字段名在请求消息中只出现一次,但有时可能会出现多次publicEnumerationgetHeaderNames()该方法返回请求头中所有头字段的枚举集合publicStringgetContentType()该方法用于获取Content-Type头字段的值publicintgetContentLength()该方法用于获取Content-Length头字段的值publicStringgetCharacterEncoding()该方法用于返回请求消息的字符集编码第18页7.2.3HttpServletRequest接口3.获取请求体信息方法说明StringgetParameter(Stringname)该方法用于获取某个指定名称的参数值,如果请求消息中没有包含指定名称的参数,getParameter()方法返回null;如果指定名称的参数存在但没有设置值,则返回一个空串;如果请求消息中包含有多个该指定名称的参数,getParameter()方法返回第一个出现的参数值String[]getParameterValues(Stringname)HTTP请求消息中可以有多个相同名称的参数(通常由一个包含有多个同名的字段元素的FORM表单生成),如果要获得HTTP请求消息中的同一个参数名所对应的所有参数值,那么就应该使用getParameterValues()方法,该方法用于返回一个String类型的数组EnumerationgetParameterNames()该方法用于返回一个包含请求消息中所有参数名的Enumeration对象,在此基础上,可以对请求消息中的所有参数进行遍历处理MapgetParameterMap() ParameterMap()方法用于将请求消息中的所有参数名和值装入进一个Map对象中返回第19页7.2.4HttpServletResponse接口HttpServletResponse接口位于javax.servlet.http包中,继承了javax.servlet.ServletResponse接口,也是非常重要的对象,其常用方法如表所示。方法说明publicvoidaddCookie(Cookiecookie)向客户端写入cookie信息publicvoidsendError(intsc)发送一个错误状态码为sc的错误响应到客户端,参数如为错误状态publicvoidsendError(intsc,Stringmsg)发送一个包含错误状态码及错误信息的响应到客户端码,参数msg为错误信息publicvoidsendRedirect(Stringlocation)使用客户端重定向到新的URL,参数location为新的地址第20页7.2.5GenericServlet类javax.servlet.GenericServlet类简化了此操作,实现了Servlet接口。publicabstractclassGenericServletextendsObjectimplementsServlet,ServletConfig,Serializable第21页7.2.6HttpServlet类javax.servlet.http.HttpServlet类对GenericServlet类进行了扩展,为HTTP请求的处理提供了灵活的方法。publicabstractclassHttpServlet extendsGenericServletimplementsSerializable第22页7.2.6HttpServlet类javax.servlet.http.HttpServlet类对GenericServlet类进行了扩展,为HTTP请求的处理提供了灵活的方法。publicabstractclassHttpServlet extendsGenericServletimplementsSerializable第23页主要内容7.1Servlet基础7.2ServletAPI编程常用接口和类7.3Servlet开发7.4本章小结

第24页7.3Servlet开发7.3.1Servlet创建7.3.2Servlet配置第25页7.3.1Servlet创建Servlet的创建主要有两种创建方法。第一种方法是创建一个普通的Java类,使这个类继承HttpServlet类,再通过手动配置web.xml文件注册Servlet对象。该方法操作较繁琐,通常不被采纳,而是使用第二种方法,即通过IDE集成开发工具进行创建。下面以Eclipse为例介绍Servlet的创建过程。第26页7.3.2Servlet配置(1)声明Servlet对象在web.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论