欢迎来到天天文库
浏览记录
ID:18800228
大小:45.50 KB
页数:13页
时间:2018-09-24
《java servlet技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JavaServlet技术JavaServlet技术Servlet简介 1.Servlet是什么? Servlet是使用JavaServlet应用程序设计接口(API)及相关类和方法的Java程序。除了JavaServletAPI,Servlet还可以使用用以扩展和添加到API的Java类软件包。Servlet在启用Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。Javaservlet对于Web服务器就好象Javaapplet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,
2、而applet装入Web浏览器并在Web浏览器内执行。JavaServletAPI定义了一个servlet和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。 Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。装入后,Servlet继续运行直到其它客户机发出
3、请求。Servlet的功能涉及范围很广。例如,Servlet可完成如下功能: (1)创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。 (2)创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。 (3)与其它服务器资源(包括数据库和基于Java的应用程序)进行通信。 (4)用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet可以是多参与者的游戏服务器。 (5)当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至applet的新连接
4、,并将该连接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如IIOP)进行通信。 (6)对特殊的处理采用MIME类型过滤数据,例如图像转换和服务器端包括(SSI)。 (7)将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户。 2.Servlet的生命周期 Servlet的生命周期始于将它装入Web服务器的内存时,并在终止或重新装入Servlet时结束。 (1)初始化 在下列时刻装
5、入Servlet: 如果已配置自动装入选项,则在启动服务器时自动装入 在服务器启动后,客户机首次向Servlet发出请求时 重新装入Servlet时装入Servlet后,服务器创建一个Servlet实例并且调用Servlet的init()方法。在初始化阶段,Servlet初始化参数被传递给Servlet配置对象。 (2)请求处理 对于到达服务器的客户机请求,服务器创建特定于请求的一个“请求”对象和一个“响应”对象。服务器调用Servlet的service()方法,该方法用于传递“请求”和“响应”对象。service
6、()方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service()方法可以调用其它方法来处理请求,例如doGet()、doPost()或其它的方法。 (3)终止 当服务器不再需要Servlet,或重新装入Servlet的新实例时,服务器会调用Servlet的destroy()方法。 3.JavaServletAPI JavaServlet开发工具(JSDK)提供了多个软件包,在编写Servlet时需要用到这些软件包。其中包括两个用于所有Servlet的基本软件包:java
7、x.servlet和javax.servlet.http。可从sun公司的Web站点下载JavaServlet开发工具。下面主要介绍javax.servlet.http提供的HTTPServlet应用编程接口。 HTTPServlet使用一个HTML表格来发送和接收数据。要创建一个HTTPServlet,请扩展HttpServlet类,该类是用专门的方法来处理HTML表格的GenericServlet的一个子类。HTML表单是由
8、单选按钮和选择列表)和用于提交数据的按钮。当提交信息时,它们还指定服务器应执行哪一个Servlet(或其它的程序)。HttpServlet类包含init()、destroy()、service()等方法。其中init()和destroy()方法是继承的。 (1)init()方法 在Servlet的生命期中,仅执行一次init(
此文档下载收益归作者所有