JavaWeb — Servlet(Server Applet)

Servlet(Server Applet)

全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

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

Servlet的工作模式:

● 接收请求数据(客户端发送请求至服务器)

● 处理请求(服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器)

● 完成响应(服务器将响应返回客户端)

Servlet API概览:

① javax.servlet;其中包含定义Servlet和Servlet容器之间契约的类和接口。

② javax.servlet.http;其中包含定义HTTP Servlet 和Servlet容器之间的关系。

③ javax.servlet.annotation;其中包含标注Servlet,Filter,Listener的标注。它还为标注元件定义数据。

④ javax.servlet.descriptor;其中包含提供程序化登录Web应用程序的配置信息的类型。

Servlet使用方法:servlet三种方式实现servlet接口

Servlet技术的核心是Servlet,它是所有Servlet类必须直接或者间接实现的一个借口。在编写实现Servlet的Servlet类时,直接实现它。在扩展实现这个接口的类时,间接实现它。

Servlet的工作原理:

● Servlet接口定义了Servlet与Servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载入内存中,并产生了Servlet实例和调用它的具体方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。

● 用户请求致使Servlet容器调动Servlet的Servic()方法,并传入一个ServletRequest对象和一个ServletResponse对象。这两个对象都是由Servlet容器(例如Tomcat)封装好的,并不需要程序员去实现,程序员可以直接使用这两个对象。

ServletRequest中封装了当前的Http请求,因此,开发人员不必解析和操作原始的Http数据。

ServletResponse表示当前用户的Http响应,程序员只需直接操作ServletResponse对象就能把响应反馈给用户

对于每一个应用程序,Servlet容器还会创建一个ServletContext对象。这个对象中封装了上下文(应用程序)的环境详情。每个应用程序只有一个ServletContext。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。

Servlet接口中定义的方法:

package javax.servlet;
import java.io.IOException;
public interface Servlet {
    //初始化servlet,它是servlet的生命周期方法,由web容器调用一次
    void init(ServletConfig var1) throws ServletException;
    //为传入的请求提供相应,它由Web容器的每个请求调用
    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
    //紧被调用一次,并且表名servlet正在被销毁
    void destroy();
    //返回ServletConfig对象
    ServletConfig getServletConfig();
    //返回有关的servlet的信息,如作者,版权,版本等
    String getServletInfo();
}

Servlet的生命周期:

① init(),当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象来,但是这个方法在后续请求中不会再被Servlet容器调用,就像人只能"出生"一次一样。我们可以利用init()方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。

② service(),每当请求Servlet时,Servlet容器就会调用这个方法。就像人一样,需要不停地接受老板的指令并且"工作"。第一次请求时,Servlet容器会先调用init()方法初始化一个对象出来,然后会调用它的Service方法进行工作,但在后续的请求中Servlet容器只会调用service方法了。

③ destroy(),当要销毁Servlet时,Servlet容器就会调用这个方法。就如人一样,到了期就会死亡。在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。

原文地址:https://www.cnblogs.com/Dm920/p/11695719.html

时间: 2024-10-12 02:54:16

JavaWeb — Servlet(Server Applet)的相关文章

注解方式配置Servlet(Servlet3.0)

注解方式配置Servlet(Servlet3.0) Servlet3.0 主页http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/ 1.简单的servlet配置 @WebServlet(”/myservlet”) @WebServlet(name=”MyServlet”, urlPatterns={"/myservlet", "/bar"}) xxx/myservlet就可用执行该

HTTP/2 服务器推送(Server Push)教程(HTTP/2 协议的主要目的是提高网页性能,配置Nginx和Apache)

HTTP/2 协议的主要目的是提高网页性能. 头信息(header)原来是直接传输文本,现在是压缩后传输.原来是同一个 TCP 连接里面,上一个回应(response)发送完了,服务器才能发送下一个,现在可以多个回应一起发送. 服务器推送(server push)是 HTTP/2 协议里面,唯一一个需要开发者自己配置的功能.其他功能都是服务器和浏览器自动实现,不需要开发者关心. 本文详细介绍服务器推送的原理和配置方法. 一.传统的网页请求方式 下面是一个非常简单的 HTML 网页文件index.

zabbix部署(server端)

Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员. 今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大. 首先,我们先来介绍下Zabblx: 一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方

JavaWeb总结(十四)

无脚本JSP表达式语言EL JSP页面中显示结果 jsp:useBean和jsp:getProperty两个元素冗长而笨拙 jsp:getProperty只支持对简单Bean属性的访问 public class Person implements Serializable { private String name; private Dog dog; -- } public class Dog implements Serializable { public String name; -- }

zabbix安装部署(server部分)

Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员. 今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大. 首先,我们先来介绍下Zabblx: 一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方

servlet(学习基本原理)

1.servlet 允许将action属性设置为 映射 ,通过映射找到相关的servlet class进行数据的处理 2.服务器容器,服务器中间件  apache-> tomcat 7,   weblogic 3.搭建servlet开发环境  startup.bat:启动tomcat服务 shutdown.bat:终止tomcat服务  配置tomcat环境变量  让cmd命令行可以直接运行这些批处理文件. CATALINA_HOME:tomcat根目录 path:% CATALINA_HOME

zabbix监控环境的搭建(server端)

一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.       zabbix由zabbix server与可选组件zabbix agent两部门组成.       zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视.       zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集. 具备常见

监控服务zabbix部署(server端)

zabbix介绍zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.zabbix由2部分构成,zabbix server与可选组件zabbix agentzabbix server可以通过SNMP,zabbix agent ,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Ubuntu,

JavaWeb基础(复习2)

会话清除与过期 程序主动清除session数据 设置会话失效:session.invalidate() 移除会话中一个属性: 语法:public void removeAttribute(String name); 服务器主动清除长时间没有再次发出请求的session 设置会话过期时间 方法一:public void setMaxInactiveInterval(int interval);(单位:秒) 方法二:<session-config><session-timeout>30