Java-Web应用开发技术与案例教程课件第67章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java-Web应用开发技术与案例教程课件第67章.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java_Web 应用 开发 技术 案例 教程 课件 67
- 资源描述:
-
1、第第6章章 Servlet技术技术 在在Web应用程序开发中,一般由应用程序开发中,一般由JSP技术、技术、JavaBean技术和技术和Servlet技术技术的的结合实现结合实现MVC开发模式开发模式。在在MVC开发模式中,将开发模式中,将Web程序的组件分为程序的组件分为3部分:部分:视图、控制、业务视图、控制、业务,分别分别由由JSP、Servlet和和JavaBean实现实现。前几章已经介绍了前几章已经介绍了JSP和和JavaBean技术技术。本章介绍本章介绍Servlet技术,以及它与技术,以及它与JSP、JavaBean技术的集成。技术的集成。Servlet就是一种具有特殊要求的就是
2、一种具有特殊要求的Java类类,可以在,可以在web服务器直接运行服务器直接运行。第第6章章 Servlet技术技术教学内容教学内容n Servlet技术概述技术概述n Servlet常用对象及其方法常用对象及其方法n 综合案例综合案例基于基于Jsp+Servlet的用户登录验证的用户登录验证n 在在Servlet中使用中使用JavaBeann Jsp与与Servlet的数据共享的数据共享n Jsp与与Servlet的关联关系的关联关系n 综合案例综合案例基于基于JSP+Servlet+JavaBean实现复数运算实现复数运算n 综合案例综合案例基于基于Jsp+Servlet+JavaBean
3、实现用户注册、登录验证实现用户注册、登录验证教学目标教学目标 掌握掌握Servlet的设计以及与其他技术的整合应用。的设计以及与其他技术的整合应用。第第1节节 Servlet技术概述技术概述 Servlet是用是用Java语言编写的服务器端程序,是由服务器端调用和执行的、按照语言编写的服务器端程序,是由服务器端调用和执行的、按照Servlet自身规范编写的自身规范编写的Java类。类。Servlet可以处理客户端传来的可以处理客户端传来的HTTP请求请求,并返回一个,并返回一个响应响应。所以,设计所以,设计Servlet,就是设计一个,就是设计一个Java类,该类具有对客户端传来的类,该类具有
4、对客户端传来的HTTP请求进行处请求进行处理,并返回一个响应的理,并返回一个响应的方法方法。即:即:有如下两个方法有如下两个方法:public void doPost(HttpServletRequest request,HttpServletResponse response)public void doGet(HttpServletRequest request,HttpServletResponse response)设计设计Servlet要在要在Servlet框架约束下进行,并遵守其中所要求的规则。框架约束下进行,并遵守其中所要求的规则。Servlet框架是由框架是由javax.ser
5、vlet和和javax.servlet.http两个两个Java包组成包组成,它们提供了设计它们提供了设计Servlet所需要的相关的接口和类所需要的相关的接口和类。1、Servlet编程所涉及到的有关接口与类编程所涉及到的有关接口与类功能功能类和接口类和接口Servlet实现实现javax.servlet.Servlet,javax.servlet.SingleThreadModel javax.servlet.GenericServlet,javax.servlet.http.HttpServletServlet配置配置javax.servlet.ServletConfigServlet异
6、常异常javax.servlet.ServletException,javax.servlet.UnavailableException请求和响应请求和响应javax.servlet.ServletRequest,javax.servlet.ServletResponsejavax.servlet.ServletInputStream,javax.servlet.ServletOutputStreamjavax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse会话跟踪会话跟踪javax.servlet.
7、http.HttpSession,javax.servlet.http.HttpSessionBindingListenerjavax.servlet.http.HttpSessionBindingEventServlet上下文上下文javax.servlet.ServletContextServlet协作协作javax.servlet.RequestDispatcher其他其他javax.servlet.http.Cookie,javax.servlet.http.HttpUtils2、Servlet的创建的创建 在在Servlet框架中,框架中,Servlet有着完备的规范,有着完备的规范
8、,开发设计一个开发设计一个Servlet就是开发一个遵守规范中所规就是开发一个遵守规范中所规定的各种特征的定的各种特征的Java类。类。Servlet的规范由的规范由接口接口javax.servlet.Servlet给出给出,并且由该接口给出了一并且由该接口给出了一实现类:实现类:javax.servlet.GenericServlet 又进一步又进一步给出了给出了javax.servlet.http.HttpServlet子类子类。所以,设计所以,设计Servlet,可有三种方法实现:,可有三种方法实现:(1)实现)实现Servlet接口,创建接口,创建Servlet 创建一个创建一个Ser
9、vlet类,必须直接或者间接实现类,必须直接或者间接实现javax.servlet.Servlet接口。接口。(2)继承)继承GenericServlet,创建,创建Servlet GenericServlet是是Servlet接口的直接实现类。接口的直接实现类。(3)继承)继承HttpServlet,创建,创建Servlet 在开发在开发Servlet时,通常采用继承时,通常采用继承“HttpServlet”子类实现。子类实现。本教材中(我们的教学中),所有的本教材中(我们的教学中),所有的Servlet都是采用这种方式创建。都是采用这种方式创建。演示演示给出给出Servlet的创建过程演示
10、的创建过程演示,使用第,使用第3种方式创建种方式创建3、Servlet的的基本结构基本结构与配置方式与配置方式 Servlet基本结构基本结构 一个一个Servlet由于遵循所要求的规范,其结构是固定的,由于遵循所要求的规范,其结构是固定的,Servlet程序的基本结构:程序的基本结构:package;/自定义的自定义的Servlet存放包名称存放包名称 import;/需要导入的有关的类和包需要导入的有关的类和包 WebServlet(description=描述信息描述信息,urlPatterns=/映射映射url配置值配置值)public class Servlet类名称类名称 exte
11、nds HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response)/要实现的代码要实现的代码 public void doPost(HttpServletRequest request,HttpServletResponse response)/要实现的代码要实现的代码 说明:说明:(1)Servlet类需要继承类类需要继承类HttpServlet (2)Servlet的父类的父类HttpServlet中包含了中包含了2个重要方法,根据需要重写它们:个重要方法,根据需要重写它们:n
12、doGet():当请求类型是:当请求类型是“get”时,调用该方法。时,调用该方法。ndoPost():当请求类型是:当请求类型是“post”时,调用该方法。时,调用该方法。3、Servlet的基本结构与的基本结构与配置方式配置方式 Servlet配置方式配置方式 Servlet需要配置,只有配置后才可以使用。需要配置,只有配置后才可以使用。所谓配置就是将所创建的所谓配置就是将所创建的Servle类映射为一个可以直接访问的类映射为一个可以直接访问的URL地址。地址。配置配置Servlet有两种方式:有两种方式:n 在在Web配置文件配置文件web.xml配置配置称为称为“配置文件配置配置文件配
13、置”,n 直接在直接在Servlet程序源代码中采用注释配置程序源代码中采用注释配置称为称为“注解配置注解配置”。基于注解配置格式:基于注解配置格式:package;/自定义的自定义的Servlet存放包名称存放包名称 import;/需要导入的有关的类和包需要导入的有关的类和包 WebServlet(description=描述信息描述信息,urlPatterns=/映射映射url配置值配置值 )public class Servlet类名称类名称 extends HttpServlet 对于采用配置文件配置,我们稍后给出。对于采用配置文件配置,我们稍后给出。4、Servlet创建案例创建案
14、例1基于注解配置实现基于注解配置实现(在源代码中配置在源代码中配置)Servlet建立步骤建立步骤:Step1:建立:建立Web工程工程Step2:建立:建立Servlet,并基于注解方式给出配置并基于注解方式给出配置在项目在项目src下创建。下创建。重写重写Servlet的的doGet或或doPost方法。方法。Step3:部署并运行:部署并运行Servlet(可直接运行,可以其他程序调用执行,(可直接运行,可以其他程序调用执行,jsp调用、还可以调用、还可以超链接执行)超链接执行)案例案例【例例6-1】首先创建一个】首先创建一个Web工程,其工程名为:工程,其工程名为:servletTes
15、t,然后再创建一个,然后再创建一个Servlet:HelloWorld.java,其功能是采用网页的方式显示,其功能是采用网页的方式显示“Hello World!”假设访问该假设访问该Servlet的访问地址为:的访问地址为:“127.0.0.1:8080/servletTest/aaa/a3”,注意,在源代码中给出的配置注意,在源代码中给出的配置信息信息。源代码源代码给出设计演示给出设计演示4、Servlet创建案例创建案例2基于配置文件实现(基于配置文件实现(不再使用不再使用)Servlet建立步骤建立步骤:Step1:建立:建立Web工程(工程(一定要选中创建一定要选中创建web.xml
16、选项选项)Step2:建立:建立Servlet在项目在项目src下创建。下创建。重写重写Servlet的的doGet或或doPost方法。方法。修改修改web.xml配置文件,注册所设计的配置文件,注册所设计的Servlet。Step3:部署并运行:部署并运行Servlet案例案例 【例【例6-1】首先创建一个】首先创建一个Web工程,其工程名为:工程,其工程名为:servletTest2,然后再创建一个,然后再创建一个Servlet:HelloWorld.java,其功能是采用网页的方式显示,其功能是采用网页的方式显示“Hello World!”假设访问该假设访问该Servlet的访问地址为
17、:的访问地址为:“127.0.0.1:8080/servletTest2/aaa/a3”,注意,在源代码中给出的配置注意,在源代码中给出的配置信息信息。源代码源代码web.xml配置信息配置信息给出设计演示给出设计演示5、关于、关于Servlet注解配置注解配置的的有关问题有关问题 采用注释配置采用注释配置Servlet,是在,是在Servlet类定义的上方直接使用注释类定义的上方直接使用注释“WebServlet”将一个将一个类声明为类声明为Servlet。该注解常用配置属性见下表所示。属性该注解常用配置属性见下表所示。属性value或者或者urlPatterns是必需的,但二者不能共是必需
18、的,但二者不能共存,如果同时指定,通常是忽略存,如果同时指定,通常是忽略value的取值属性,其它属性均为可选属性。的取值属性,其它属性均为可选属性。属性名属性名类型类型描述描述asyncSupportedboolean声明声明Servlet是否支持异步操作模式是否支持异步操作模式descriptionStringServlet的描述信息的描述信息displayNameStringServlet的显示名称的显示名称initParamsWeb initParamsServlet的初始化参数的初始化参数nameStringServlet的名称的名称urlPatternsString配置配置Serv
19、let的访问的访问URL,可以同时配置多个不同的,可以同时配置多个不同的URLvalueString配置配置Servlet的访问的访问URL,可以同时配置多个不同的,可以同时配置多个不同的URL注释配置格式示例:注释配置格式示例:WebServlet(displayName=This is Login Action,/描述描述 name=LoginAction,/Servlet名称名称 urlPatterns=/请求请求url,可以配置多个,用逗号间隔,可以配置多个,用逗号间隔 /servlet/studentLoginAction,/test/teacherLoginAction,)publ
20、ic class 类名称类名称 extends HttpServlet/类实现代码类实现代码在在Eclipse中,默认的配置格式为:中,默认的配置格式为:WebServlet(/AA)public class AA extends HttpServlet WebServlet(/访问访问url)等价于等价于 WebServlet(urlPatterns=/访问访问url)给出修改配置的演示给出修改配置的演示再给出多个配置设置的演示与运行演示再给出多个配置设置的演示与运行演示第第2节节 Servlet常用接口、类及其方法常用接口、类及其方法JSP内置对象Servlet类或接口outjavax.s
21、ervlet.http.HttpServletResponse例如:得到PrintWriter类并创建Servlet的out对象PrintWriter out1=response.getWriter();requestjavax.servlet.http.HttpServletRequestresponsejavax.servlet.http.HttpServletResponsesessionjavax.servlet.http.HttpSessionapplicationjavax.servlet.ServletContextconfigjavax.servlet.ServletConfi
22、gexceptionjavax.servlet.ServletException JSP内置对象与内置对象与Servlet类(接口)的关系类(接口)的关系1javax.servlet.http.HttpServletRequest 类类HttpServletRequest的对象对应的对象对应JSP的的request对象,对象,常用方法:常用方法:nvoid setCharacterEncoding():设置请求信息字符编码,常用于解决设置请求信息字符编码,常用于解决post方式下参数值汉字乱码问题。方式下参数值汉字乱码问题。nString getParameter(String paraNam
23、e):获取单个参数值。:获取单个参数值。nString getParameterValues(String paraName):获取同名的参数的多个值。获取同名的参数的多个值。nObject getAttribute(String attributeName):获取获取request范围内属性的值。范围内属性的值。nvoid setAttribute(String attributeName,Object object):设置设置request范围内属性的值。范围内属性的值。nvoid removeAttribute(String attributeName):删除删除request范围内的属
24、性。范围内的属性。2javax.servlet.http.HttpServletResponse 类类HttpServletResponse对象对应对象对应JSP的的response对象,对象,常用方法:常用方法:nvoid response.setContentType(String contentType):设置响应信息类型。设置响应信息类型。nPrintWriter response.getWriter():获得获得out对象。对象。nvoid sendRedirect(String url):重定向。重定向。nvoid setHeader(String headerName,Strin
25、g headerValue)设置设置http头信息值。头信息值。3javax.servlet.http.HttpSession 类类HttpSession的对象对应的对象对应JSP的的session对象,但在对象,但在Servlet中,该对象需要由中,该对象需要由request.getSession()方法获得。方法获得。常用方法常用方法:nHttpSession request.getSession():获取:获取session对象。对象。nlong getCreationTime():获得:获得session创建时间。创建时间。nString getId():获得:获得session id
展开阅读全文