Java Servlet

Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的類別,一般情况下,人们将Servlet理解为后者。

Life of a JSP file

Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议Web服务器

最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

历史

Servlet API 历史
Servlet API 版本发布日期平台重要变化
Servlet 5.0 2020年6月12日 页面存档备份,存于 Jakarta EE 9 移到包名到“jakarta.servlet
Servlet 4.0.3 2019年3月13日 页面存档备份,存于 Jakarta EE 8 去除“Java”商标
Servlet 4.02017年9月 页面存档备份,存于Java EE 8HTTP/2
Servlet 3.12013年5月 页面存档备份,存于Java EE 7Non-blocking I/O, HTTP protocol upgrade mechanism (WebSocket)[1]
Servlet 3.02009年12月Java EE 6, Java SE 6Pluggability, Ease of development, Async Servlet, Security, File Uploading
Servlet 2.52005年9月Java EE 5, Java SE 5Requires Java SE 5, supports annotation
Servlet 2.42003年11月J2EE 1.4, J2SE 1.3web.xml uses XML Schema
Servlet 2.32001年8月J2EE 1.3, J2SE 1.2Addition of Filter
Servlet 2.21999年8月J2EE 1.2, J2SE 1.2Becomes part of J2EE, introduced independent web applications in .war files
Servlet 2.11998年11月UnspecifiedFirst official specification, added RequestDispatcher, ServletContext
Servlet 2.0JDK 1.1Part of Java Servlet Development Kit 2.0
Servlet 1.01997年6月

工作模式

  • 客户端发送请求至服务器
  • 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
  • 服务器将响应返回客户端
  • 其他

通用Servlet

一般來說,通用Servlet由javax.servlet.GenericServlet實作Servlet介面。程序设计人员可以通过使用或继承这个类来实现通用Servlet应用。

HttpServlet

javax.servlet.http.HttpServlet实现了专门用于响应HTTP请求的Servlet,提供了响应对应HTTP标准请求的doGet()、doPost()等方法。

生命周期

当servlet被部署在应用服务器中(应用服务器中用于管理Java组件的部分被抽象成为容器)以后,由容器控制servlet的生命周期。除非特殊指定,否则在容器启动的时候,servlet是不会被加载的,servlet只会在第一次请求的时候被加载和实例化。servlet一旦被加载,一般不会从容器中删除,直至应用服务器关闭或重新启动。但当容器做記憶體回收动作时,servlet有可能被删除。也正是因为这个原因,第一次访问servlet所用的时间要大大多于以后访问所用的时间。

servlet在服务器的运行生命周期为,在第一次请求(或其实体被内存垃圾回收后再被访问)时被加载并执行一次初始化方法,跟着执行正式运行方法,之后会被常驻并每次被请求时直接执行正式运行方法,直到服务器关闭或被清理时执行一次销毁方法后实体销毁。

与JSP的关系

Java服务器页面(JSP)是HttpServlet的扩展。由于HttpServlet大多是用来响应HTTP请求,并返回Web页面(例如HTMLXML),所以不可避免地,在编写servlet时会涉及大量的HTML内容,这给servlet的书写效率和可读性带来很大障碍,JSP便是在这个基础上产生的。其功能是使用HTML的书写格式,在适当的地方加入Java代码片段,将程序员从复杂的HTML中解放出来,更专注于servlet本身的内容。

JSP在首次被访问的时候被应用服务器转换为servlet,在以后的运行中,容器直接调用这个servlet,而不再访问JSP页面。JSP的实质仍然是servlet。

参见

参考文献

  1. . [2016-09-07]. (原始内容存档于2017-01-17).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.