Servlet的简单理解


前言

        Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

         服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公告网络接口(Common Gateway Interface,CGI)应用程序完成的。然而,在服务器上运行 Java,这种程序可使用 Java 编程语言实现。在通信量大的服务器上,JavaServlet 的优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。


一、Servlet是什么?

Servlet 是在服务器上运行的小程序。Servlet是Tomcat为了响应用户的请求,所创建的一个对象。

二、Servlet的工作原理

1.Servlet的生命周期

          一个servlet的生命周期主要由下列三个过程组成:
         (1)初始化servlet.servlet第一次被请求加载时,服务器初始化这个servlet,即创建一个
servlet,这servlet调用init方法完成必要的初始化工作。
         (2)新诞生的servlet再调用service方法响应用户的请求。
         (3)当服务器关闭时,调用destroy方法销毁servlet。
         init方法只被调用一次,即在servlet第次被请求加载时调用该方法。当后续的用户 请
求servlet服务时,Tomcat服务器将启动一个新的线程,在该线程中,servlet调用service方法
响应用户的请求。也就是说,每个用户的每次请求都导致service方法被调用执行,其执行过
程分别运行在不同的线程中。

2.init方法,service方法,destroy方法

init方法:、

public void init(ServletConfig Config) throws ServletException {
   System.out.println("");
}

         servlet第一次被请求加载时,服务器创建一个servvlet,这个对象调用init方法完成必要
的初始化工作。该方法在执行时,服务器会把一个SevletConfig类型的对象传递给init方法,
这个对象就被保存在servlet中,直到servlet 被销毁。这个ServletConfig对象负责向servlet
传递服务设置信息,如果传递失败就会发生ServeletException,servlet就不能正常工作。

service方法:

public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
   System.out.println("");
}

         当 servlet成功创建和初始化之后,调用sevive方法来处理用户的请求并返回响应。Tomcat服务器将两个参数传递给该方法。一个是HTTPServletResquest类型的对象,该对象封装了用户的请求信息另外一个参数对象是HTTPServletResponse类型的对象,该对象用来响应用户 的请求.和init方法不同的是init方法只被调用一次,而 sevice方法可能被多次的调用。也就是说,当后续的用户请求该servlet时,Tomcat服务器将启动一个新的线程,在该线程中servlet调用service方法响应用户的请求,即每个用户的请求都导致service方法被调用执行,调用过程运行在不同的线程中,互不干扰。因此,不同线程的service方法中的局部变量方法中的局部变量互不干扰,一个线程改变了自己的service方法中局部变量的值不会影响其他线程的service方法中的局部变量。

destroy方法:

        该方法是HttpServlet类中的方法,子类可直接继承这个方法,一般不需要重写。

public destroy()

        当Tomcat服务器终止服务时,例如关闭Tomcat服务器等,destroy()方法会被执行,销毁servlet。


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值