servlet初学者教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Servlet入门回顾Web应用程序在互联网应用中越来越重要。Web服务器程序是指运行在Web服务器上的软件程序,其主要功能是负责侦听指定端口,接收客户端的请求并解析,然后将指定的页面发送到客户端。Tomcat是当今使用最为广泛的基于Java的Web服务器软件,是中小企业应用和学习Web编程的最佳选择。2本章相关词汇3单词说明servlet服务器端小程序generic一般的,普通的,非特殊的request请求response响应,回答initialize初始化destroy破坏,毁坏,消灭本章目标理解Servlet的基本知识Servlet相关的API了解Servlet的体系结构了解Servlet的生命周期实现并部署Servlet4什么是Servlet?Servlet是用Java语言编写的程序,它运行在Web服务器上,用以处理来自客户端的请求;它一般会把处理的结果以为HTML的形式返回,在客户端形成动态网页。5客户端Web服务器Servlet请求响应Servlet的优点Servlet运行在Web服务器中,可以扩展服务器的功能;Servlet可以和其他资源交互,从而生成返回给客户端响应的内容,即动态网页;使用Java编写,所以能够跨平台;Java的所有优点都可以在Servlet中体现;Servlet很安全,因为访问Servlet的唯一途径是通过服务器;只要符合Servlet规范的Servlet容器都可以运行Servlet。6Servlet容器事实上,Servlet本身就是普通的Java类,在需要的时候被实例化,在不需要的时候被销毁,而Servlet的实例化和销毁工作由Servlet容器来完成;Servlet在Servlet容器内运行,Servlet容器负责调度Servlet,并控制着Servlet的生命周期;ApacheTomcat既是Web服务器软件,同时也是符合规范的Servlet容器。7ServletAPI与Servlet相关的两个包:javax.servletjavax.servlet.httpjavax.servlet包中包含了支持通用的,跨协议的Servlet的相关接口和类;javax.servlet.http包中则包含了特定于HTTP协议的Servlet相关类;在Tomcat安装目录/common/lib路径下,可以找到servlet-api.jar文件。8javax.servlet包中的接口9接口名称说明Servlet这是每个Servlet都必须实现的接口,它定义了一系列必须由Servlet实现的方法。ServletRequest此接口用于将客户端的请求信息传送给Servlet。ServletResponse此接口用于对客户端做出响应。ServletConfig此接口定义Servlet配置对象,以便于容器将信息传递给Servlet。ServletContext此接口定义了一组方法,用于Servlet与容器进行通信。javax.servlet包中的类10类名称说明GenericServlet抽象类,定义一个通用的、独立于底层协议的Servlet。ServletInputStream这是提供输入流用于读取来自客户端请求的二进制数据的类。ServletOutputStream此类提供输出流用于将二进制数据发送到客户端。ServletExceptionServlet在执行过程中遇到困难时抛出该异常。javax.servlet.http包中的接口11接口名称说明HttpServletRequest该接口扩展ServletRequest接口,定义了一系列用于描述HTTP请求的方法。HttpServletResponse该接口扩展ServletResponse接口,提供服务器对客户端的响应对象。HttpSession该接口提供客户端与服务器端的会话标识。javax.servlet.http包中的类12类名称说明HttpServlet该类是最常用于扩展Servlet的类,因为很多Servlet应用程序都遵照HTTP协议运行。此类支持HTTP协议功能以及Servlet类的方法,它是个抽象类。它接收客户端的请求,并向客户端发送响应。Cookie此类用来创建Cookie,它存储了少量由Servlet发送至客户端的信息。Servlet的体系结构13ServletGenericServletHttpServlet自定义Servletjavax.servlet包javax.servlet.http包javax.servlet.http.HttpServletHttpServlet中提供了一系列让子类重写的方法,在不同的时刻会调用执行这些方法:14方法原型说明publicvoidinit(ServletConfigconfig)throwsServletException在初始化Servlet时调用一次,如有特殊需要,可重写该方法。protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException如果客户端是以GET方式提交请求时执行,应当重写此方法protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException如果客户端是以POST方式提交请求时执行,应当重写此方法publicvoiddestroy()当销毁Servlet实例时调用一次,如有需要释放的资源,可重写该方法javax.servlet.http.HttpServlet(续)HttpServlet还提供了一些不常用的方法,如有非常特殊的需要,可考虑重写它们:15方法原型说明protectedvoiddoDelete(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException用于删除服务器上的文档,这个方法由于复杂的策略问题不被广泛支持protectedvoiddoHead(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException如果客户端只是想查看响应头,可通过此方法来确定文档的大小,修改时间或一般可用性protectedvoiddoPut(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException用于将文档直接放置在服务器上protectedvoiddoOptions(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException用于询问服务器上的某种资源有什么选项可用javax.servlet.http.HttpServlet(续)HttpServlet中还提供了一些其他的方法,这些方法不是用来重写,而是提供某些功能的:16方法原型说明ServletContextgetServletContext()返回SerletContext对象ServletConfiggetServletConfig()返回SerletConfig对象StringgetServletInfo()返回Servlet的一般信息字符串,如作者,版本,版权等voidlog(Stringmessage)将消息写入Servlet的日志文件longgetLastModified(HttpServletRequestrequest)返回Servlet的最后修改日期StringgetServletName()返回Servlet的名称StringgetInitParameter(Stringname)返回指定的初始化参数的值注意事项HttpServlet中还包含一个service方法,其原型如下:publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException此方法用来调度客户端的请求,API文档中明确规定,请勿重写该方法。17Servlet的生命周期Servlet容器负责调度Servlet并控制它的生命周期;18服务器加载Servlet服务器创建Servlet类的实例调用Servlet实例的init方法收到客户端请求调用service方法service方法处理请求并将结果输出到客户端Servlet等待下一个请求或由服务器销毁Servlet在服务器调用destroy方法后被销毁案例1:HelloServlet19//导入必要的包importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;//自定义Servlet,继承于HttpServletpublicclassHelloServletextendsHttpServlet{//重写父类的doGet方法,收到客户端的请求(get方式)时,执行此方法publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//获得输出流,以便向客户端输出内容PrintWriterout=response.getWriter();//向客户端输出页面内容out.println(html);out.println(head);out.println(titleHelloServlet/title);out.println(/head);out.println(body);out.println(Helloworld!br);out.println(/body);out.println(/html);out.close();//关闭流}}部署HelloServlet在Tomcat安装目录\webapps目录下新建名为myweb的目录作为站点目录;在myweb目录下建立WEB-INF目录,然后再建立classes目录存放编译后的类文件。20配置文件web.xml为了使Servlet容器能够正确识别Servlet,还必须填写名为web.xml的配置文件,其格式如下:servletservlet-nameServletName/servlet-nameservlet-classServletClassservlet-class/servletservlet-mappingservlet-nameServletNameservlet-nameurl-patternServletURLMappingurl-patternservlet-mapping21Servlet的名称,可任意命名Servlet的名称,可任意命名Servlet类的名称Servlet对应的URL名两者必须一致HelloServlet的web.xml22?xmlversion=1.0encoding=ISO-8859-1?web-appxmlns=:xsi=:schemaLocation=http

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功