Servlet(1)

servlet是什么

servlet是运行在服务器端的java程序,本质上是一个特定的java类,   处理请求和发送响应的过程(接受并处理HTTP请求)是由它来完成的,它可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,实现动态页面。

servlet的工作机制

servlet是java.servlet包的子类,有tomcat服务器完成Servlet的创建和初始化

servlet的任务是什么

1.读取客户端(浏览器)发送的显式的数据
  包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单
2.读取客户端(浏览器)发送的隐式的 HTTP 请求数据
  这包括 cookies、媒体类型和浏览器能理解的压缩格式等等
3.处理数据并生成结果
  这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应
4.发送显式的数据(即文档)到客户端(浏览器)
  该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等
5.发送隐式的 HTTP 响应到客户端(浏览器)
  包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务

servlet的生命周期

Servlet 生命周期可被定义为从创建直到销毁的整个过程

1、Servlet 通过调用 init () 方法进行初始化

2、Servlet 调用 service() 方法来处理客户端的请求

3、Servlet 通过调用 destroy() 方法终止(结束)

4、Servlet 是由 JVM 的垃圾回收器进行垃圾回收

(1)客户端发出servlet请求,服务器查找内存中是否存在该servlet的对象,若存在,则直接调用该对象响应请求(处于就绪状态)。若不存在(即为第一次请求),服务器创建一个servlet对象,调用init()方法,执行对象的初始化后,就处于就绪状态,可以随时响应客户请求

(2)当客户发出servlet请求时,服务器吧HttpServletRequest类型对象和HttpServletRespone类型对象转发给Servlet,并将两个对象作为参数传递给servicr()方法。在次方法获得请求资源,对请求资源进行判断。是get还是post,对应doGet() doPost()来处理请求,然后把响应返回给客户

(3)服务器关闭或卸载servlet对象,就会调用destroy()方法销毁Servlet对象,释放内存。servlet对象被销毁,但是并没有立即被回收

Servlet成员方法

1、init()方法

init 方法被设计成只调用一次,用来完成Servlet对象的初始化。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。
	
public void init() throws ServletException {
	// 初始化代码...
}

2、service()方法

service() 方法是执行实际任务的主要方法.Servlet容器调用 service() 方法来处理来自客户端的请求,并把格式化的响应写回给客户端。每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。
	
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{

}

3、doPost() 方法 和 doPost() 方法

在线程中该service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
	// Servlet 代码
}
	
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
	// Servlet 代码
}

4、destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。释放占用内存

 public void destroy() {
	// 终止化代码...
}

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦