请求Servlet流程以及Servlet生命周期

一.Servlet的请求流程(Servlet工作原理解析)

二.Servlet的生命周期

1.客户端发送请求给服务器。

2.服务器开始接受,先判断该请求的servlet实例是否存在,如果不存在先装载一个servlet类并创建实例。

如果存在则直接调用该servlet的service方法,之后进行判断是调用  doGet方法还是doPost方法。

3.servlet创建实例后,调用init方法进行初始化。之后调用servce方法,判断是调用doGet方法还是doPost方法。

4.最后判断服务器是否关闭,如果关闭则调用destroy方法。

三.Tomcat的Servlet容器装载Servlet:

1、自动装载:某些Servlet如果需要在Servlet容器启动时就加载,需要在web.xml下它的<Servlet>标签里中,添加优先级代码:

<Servlet>

<location-startup>1<location-startup>

</Servlet>

数字越小表示该servlet的优先级越高,会先于其他自动装载的优先级较低的先装载。

2、Servlet容器启动后,客户首次向某个Servlet发送请求时,Tomcat的Servlet容器会加载一个Servlet。

3、当Servlet类文件被更新后,也会重新加载。

4、Servlet是长期驻留在内存里的。某个Servlet一旦被加载,就会长期存在于服务器的内存里,直到服务器关闭。

5、Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

Servlet3.0新特性详解

四:Servlet/JSP九大内置对象

五: Servlet的路径跳转

一、JSP跳转到Servlet

1、相对路径,如href="servlet/xxServlet" ,注意:如果写成"/servletxxServlet"会报错,因为第一个‘/‘表示的是【服务器根目录http://localhost:8080/】

2、绝对路径,通过内置成员变量path实现,如href="<%=path%>/servlet/xxServlet"

注意:这里的path得到的是项目根目录,如【http://localhost:8080/xxProjectDemo】

二、Servlet跳转JSP

1、请求重定向:response.sendRedirect(request.getContextPath()+"/xxx.jsp");

这里通过request.getContextPath()方法获得项目根目录,或者通过"../xxx.jsp"取得上路径得到

2、服务器内部转发:request.getRequestDispatcher("../xxx.jsp").forward(req,resp);

注意:web.xml中url-pattern必须以/开头,这里/表示项目的根目录。

六:Servlet中获取初始化参数

首先设置初始化参数,可以有若干个参数。

<servlet>
             <servlet-name>xxServlet</servlet-name>
             <servlet-class>com.xxx.xxServlet</servlet-class>
             <init-param>
                   <param-name>xxname</param-name>
                   <param-value>xxvalue</param-value>
             </init-param>
     </servlet>

servlet中获取值:String xxvalue = this.getInitParameter("xxname");

时间: 2024-10-15 15:51:32

请求Servlet流程以及Servlet生命周期的相关文章

Servlet(二)生命周期

Servlet的生命周期可以定义为从其被创建到其被销毁的整个流程,下面是Servlet生命的常规线路: 容器调用init()方法进行Servlet的初始化 Servlet调用service()方法去处理客户端的请求 容器调用destroy()方法将Servlet销毁 最后,Servlet被JVM的GC线程当作垃圾处理掉 init()方法: init()方法只会在创建Servlet时被调用一次,不管有多少用户请求.通常情况下,Servlet在容器第一次接收到用户请求时被创建,但也可以通过load-

深刻理解Servlet运行机制和生命周期

servlet 运行在servlet 容器中,其生命周期由容器来管理.servlet 的生命周期通过 javax.servlet.Servlet接口中的init(),servce(),和destory();方法表示.1,加载和实例化servlet 容器负责加载和实例化servlet 当容器启动或在容器中检测到需要这个servlet来响应一个请求 时.创建servlet实例.容器通过java 的反射API来创建servlet实例.所以servlet中不应该提供带参数的构造函数.2,初始化在serv

JavaWeb之 Servlet执行过程 与 生命周期

Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类实现了这个接口,这个类就是一个Servlet.Servlet下有一个实现类叫HttpServlet,一个普通的java如果继承了HttpServlet类,覆盖了它的doGet和doPost方法,那么这个普通类也可以叫做Servlet.最后,servlet程序交给服务器运行! 那么,当我们写好了一个Servlet,交给了服务器,它是如何执行的呢!? Servlet的执行过程 我们写了一个Serv

Servlet的配置和生命周期

1 Servlet容器:运行Servlet.JSP.Filter等的软件环境    1)可以创建Servlet,并调用生命周期的方法 2 Servlet生命周期的方法: 1)构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet实例,说明Servlet是单实例的. 2)init方法:只被调用一次,在创建好实例后立即被调用,用来初始化Servlet. 3)service:被多次调用,每次请求都调用service方法,实际用于响应请求 4)destroy:只被调用一次,在当前Ser

Servlet的API和生命周期

一.Servlet的API(生命周期) (1)Servlet接口中的方法 1)init(ServletConfig config) 何时执行:servlet对象创建的时候执行(以上图为例:在浏览器中按地址第一次访问服务器时,Tomcat服务器会new 一个QuickstartServlet对象,并通过生成的对象调用init方法,init方法仅仅执行一次.) ServletConfig : 代表的是该servlet对象的配置信息. 参数作用: 1. 可以通过参数config获得该servlet的n

servlet入门学习之生命周期

一. 什么是Servlet Servlet是用Java语言编写的服务器端小程序,驻留在web服务器中,并在其中运行,扩展了web服务器的动态处理功能. 用java语言编写的java类 在web容器中运行 用于处理客户端请求  静态网页技术---->传统的CGI技术----->Servlet技术 二.Servlet生命周期与工作原理 执行原理: 客户机将HTTP 请求发送给Web 服务器 Web 服务器将该请求转发给Servlet Servlet 处理该请求 Servlet 将响应发送给Web

JavaEE基础(01):Servlet实现方式,生命周期执行过程

本文源码:GitHub·点这里 || GitEE·点这里 一.Servlet简介 Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容.使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页. 二.实现方式 1.继承HttpServlet API简介 继承自 GenericServlet. 遵守 HTTP协议实现,以设计模式的角度看,HttpServlet担任抽象模板角色,模板方法:由ser

Servlet和JSP的生命周期

一.Servlet生命周期 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应.常用的tomcat.jboss.weblogic都是Servlet容器)中的,其生命周期是由容器来管理.Servlet的生命周期通过Java.servlet.Servlet接口中的init().service().和destroy()方法表示.Servlet的生命周期有

[03] Servlet继承关系和生命周期

1.Servlet的继承关系 假如现有我们自定义的一个Servlet,继承HttpServlet,那么实际上它的继承链如下图: 可以看到,核心的部分在于: 两个顶级接口 Servlet ServletConfig 接口的实现类 GenericServlet 基于HTTP协议的实现类 HttpServlet 我们剥离一下,把不需要看的去掉,再把方法显示一下,可清晰知道Servlet的整体继承关系如下: 其中重点摘录部分进行说明: ServletConfig  Servlet的配置信息,常用来在Se