JAVA ——Servlet

Servlet是什么

Servlet是Java Servlet的简称,是一种用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能体现在交互式地浏览和生成数据,生成动态Web内容。

人们通常以广义的Servlet来理解Servlet,即Servlet是指任何实现了这个Servlet接口的类,狭义的Servlet则是指Java语言实现的一个接口。

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


Servlet实现过程

客户端发送请求至客户端;

服务器将请求信息发送至Servlet;

Servlet生成响应内容并将其传给服务器(响应内容动态生成,通常取决于客户端的请求);

服务器将响应返回给客户端。


生命周期

Servlet的生命周期通俗的讲就是Servlet类在什么时候创建,调用了什么方法,在什么时候被销毁。其整个生命周期都是由tomcat也就是服务器控制的。

客户端请求Servlet;

加载该Servlet类到内存;

实例化并调用init()方法初始化该Servlet;

service()(根据请求方法不同调用doGet()或doPost());

加载和实例化Servlet。

下面是一个典型的Servlet生命周期方案:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAampfdw==,size_19,color_FFFFFF,t_70,g_se,x_16

第一个到达服务器的HTTP请求被委派到Servlet容器;

Servlet容器在调用service()方法前加载Servlet;

Servlet容器处理由多个线程产生的多个请求。每个线程执行单一的Servlet实例的service()方法。

 


 

与Applet对比

相似:

都基于Java技术,面向对象;

都不是独立的应用程序,没有main();

都不是由用户或程序员调用,而是由另外一个应用程序(容器)调用;

都存在一个生存周期,包含init()和destroy()方法。

不同:

Applet在客户端运行,具有很好的图形界面;

Servlet在服务器端运行,没有图形界面。


编程接口

init()方法

在Servlet的生命周期中,只执行一次init()方法。它在服务器装入Servlet时执行。无论有多少客户访问Servlet,都不会重复执行init()。

service()方法

service()方法是Servlet的核心。每当一个客户请求一个HttpServlet对象,该对象的service()方法就会被调用,而且传递给这个方法一个请求对象和响应对象作为参数。

doGet()方法

当一个客户通过HTML表单发出一个HTTP GET请求或直接请求一个URL时,就会调用该方法。与GET请求相关参数添加到URL后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该调用该方法。

doPost()方法

一个客户通过 HTML 表单发出一个 HTTP POST 请求时,doPost() 方法被调用。与 POST 请求相关的参数作为一个单独的 HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用 doPost() 方法。

destroy() 方法
destroy() 方法仅执行一次,即在服务器停止且卸装 Servlet 时执行该方法。典型的,将 Servlet 作为服务器进程的一部分来关闭。
当服务器卸装 Servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间隔过后调用 destroy() 方法。一个 Servlet 在运行 service() 方法时可能会产生其它的线程,因此请确认在调用 destroy() 方法时,这些线程已终止或完成。

getServletConfig() 方法
getServletConfig() 方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和 ServletContext。ServletContext 接口提供有关 servlet 的环境信息。

getServletInfo() 方法
getServletInfo() 方法是一个可选的方法,它提供有关 servlet 的信息,如作者、版本、版权。


常见容器

Tomcat, Jetty, resin, Oracle Application server, WebLogic Server, Glassfish, Websphere, JBoss 等等。(提供了 Servlet 功能的服务器,叫做 Servlet 容器。对 web 程序来说,Servlet 容器的作用就相当于桌面程序里操作系统的作用,都是提供一些编程基础设施)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值