JAVA学习 分析Servlet

一个、什么是Servlet

Servlet是一种在server端执行的java编写的程序,是依照Servlet规范编写的一个java类。

二、Servlet的工作过程

如图所看到的:为了实现客户与server端的动态交互,须要一个遵循HTTP协议的server端应用软件,来处理客户的各种请求,并将结果发送给client。

三、Servlet的生命周期

Servlet的生命周期是由Servlet的容器(比如:tomcat)来控制的;生命后期分为载入类及创建实例。初始化;服务;销毁

1、载入类及创建实例

在默认情况下,Servlet实例是在第一个请求到来的时候创建,即输入url的时候创建。以后复用。可是也能够通过配置文件进行设置參数:<load-on-startup>值</load-on-startup>;当中值默觉得负数。当设置为大于等于0的数值时,则在tomcat启动的时候载入创建实例。

2、初始化

一旦Servlet实例被创建,webserver会自己主动调用init(ServletConfig
config)方法来初始化该Servlet,当中方法參数config中包括了Servlet的配置信息。以下说一下该怎样配置Servlet的初始化參数:

在web.xml中该Servlet的定义标记中,比方:

  <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>com.tgb.Test.TestServlet</servlet-class>
        <init-param>
           <param-name>encoding</param-name>
           <param-value>GB18030</param-value>
       </init-param>
       </servlet>
<servlet-mapping> 

 <servlet-name>TestServlet</servlet-name>
 <url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>

<servlet-name>:sevlet对象的名称。

<servlet-class>:创建servlet对象须要载入的类

<init-param>:初始化

<param-name>:參数名称

<param-value>:參数值

<load-on-startup>:创建servlet对象的时机以及顺序

<servlet-mapping><servlet-name>要与

<servlet><servlet-name>名称一致。

<url-pattern>:client訪问url地址。

3、服务

初始化成功后,该Servlet实例就能够被server用来服务client提出的请求并响应,在服务阶段server会调用该实例的Service(ServletRequest
request, ServletResponse response)方法,两个參数由server创建并传给Servlet实例。当中request对象封装了client发往server端的信息。response对象则封装了server发往client的信息。

4、销毁

当web应用被终止时。Servlet容器会先调用Servlet对象的destrory()方法,然后再销毁Servlet对象,同一时候也会销毁与Servlet对象相关联的ServletConfig对象。我们能够在destroy方法的实现中释放Servlet所占用的资源。

须要注意的是,Servlet的生命周期中,Servlet的初始化和销毁阶段值会发生一次,而Service方法运行的次数则取决于client訪问的次数。

四、Servlet的线程安全问题

Servlet是单实例多线程的。假设存在能够改动的成员变量将会出现线程安全问题。

使用Servlet最好保证Servlet是无状态的,也就是没有能够改动的成员变量。

总结:如今的感觉是,Servlet用起来非常easy。可是让我非常清楚的描写叙述什么是Servlet,和Servlet的原理还有些困难,这篇博客说明了Servlet一些简单的原理,希望会对以后使用Servlet有非常好额帮助。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-12-29 11:44:48

JAVA学习 分析Servlet的相关文章

【java学习】Servlet简单的表单程序(一)

此文用于java学习,在此小记. 在此小Demo中使用到了Servlet,所以有必要了解一下Servlet的相关知识.(Servlet的相关知识摘抄自http://blog.csdn.net/jiuqiyuliang/article/details/36424981) Servlet是Sun公司提供的一门用于开发动态web网页的技术.Sun公司在API中提供了一个servlet接口,我们如果想使用java程序开发一个动态的web网页,只需要实现servelet接口,并把类部署到web服务器上就可

Java学习之Servlet篇

<JAVA遇见HTML——Servlet篇> Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Servlet时执行的,负责初始化Servlet对象.可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet.无论有多少客户机访问Servlet,都不会重复执行init(). service():它是Servlet的核心,负责响应客

Java学习资料-Servlet单例多线程

Servlet 单例多线程 Servlet如何处理多个请求访问? Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例): 2.容器初始化化Servlet主要就是读取配置文件(例如tomcat,可以通过servlet.xml的<Connector>设置线程池中线程数目,初始化线程池通过web.xml,初始化每个参数值等等. 3.当请求到达时,Servlet容器通过

Java学习之Servlet

一.Servlet:其实就是一个java程序,运行在我们的web服务器上,用于接收和响应 客户端的http请求. 二.Hello Servlet 1.新建一个web工程,要有一个服务器 2.新建一个实现Servlet接口的类 3.配置Servlet,用意:匹配客户端请求,指向具体Servlet 3.1.具体配置文件路径在webContent/WEB-INF/web.xml 3.2.配置信息 4.启动Run AS 浏览器地址栏:http://localhost:8080/p02_HellowSer

Java Web基础 --- Servlet 综述(理论篇)

摘要: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Servlet 的产生动机,并揭示了 Servlet 的本质以及其在标准MVC模式中所扮演的角色.紧接着,给出了 Servlet族的继承结构,并对族内的接口和抽象类作了进一步的介绍,并给出开发一个Servlet程序的常用做法.在此基础上,我们图文并茂地介绍了 Servlet 的生命周期与执行流程,清晰展现

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中.假设是这样,除了负责显示的HTML标记之外,必须还要有完毕这些业务功能的代码存在.这样的网页我们就叫做动态网页. 对于静态网页而言,server上存在的是一个个纯HTML文件.当client浏览器发出HTTP请求时,server能够依据请求的URL找到相应的HTML文件,并将HTML代码返回给cl

JAVA学习之 浅析Servlet

一.什么是Servlet Servlet是一种在服务器端运行的java编写的程序,是按照Servlet规范编写的一个java类. 二.Servlet的工作过程 如图所示:为了实现客户与服务器端的动态交互,需要一个遵循HTTP协议的服务器端应用软件,来处理客户的各种请求,并将结果发送给客户端. 三.Servlet的生命周期 Servlet的生命周期是由Servlet的容器(例如:tomcat)来控制的:生命后期分为加载类及创建实例:初始化:服务:销毁 1.加载类及创建实例 在默认情况下,Servl

【转】Java学习---解析Java Servlet工作过程

[原文]https://www.toutiao.com/i6594316694657696264/ 解析Java Servlet工作过程 Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤: 编写一个Java类,实现servlet接口. 把开发好的Java类部署到web服务器中. Servlet的运行过程 Serv

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入