Servlet程序开发-- Servlet生命周期
生命周期是一个程序的存在周期,受容器管理,所以容器决定生命周期。
生命周期包括 加载,初始化,服务,销毁,卸载 5个部分
加载:第一次使用的时候加载
初始化:init方法, 失败的话,直接卸载,如果成功的话,进行服务的操作,如果服务不再使用,进行销毁再卸载
服务:service方法
销毁:destroy方法
代码:
package org.lxh.servletdemo ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class LifeCycleServlet extends HttpServlet{
public void init() throws ServletException{
System.out.println("** 1、Servlet初始化 --> init()") ;
}
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
System.out.println("** 2、Servlet服务 --> doGet()、doPost()") ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
this.doGet(req,resp) ;
}
public void destroy(){
System.out.println("** 3、Servlet销毁 --> destory()") ;
try{
Thread.sleep(3000) ;
}catch(Exception e){}
}/*
public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
IOException{
System.out.println("************ 服务 **************") ;
}
*/
}
web.xml配置:
<servlet>
<servlet-name>life</servlet-name>
<servlet-class>org.lxh.servletdemo.LifeCycleServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>life</servlet-name>
<url-pattern>/LifeServlet</url-pattern>
</servlet-mapping>
init:在第一次运行的时候才会初始化
销毁destroy:
1. 容器关闭
2. 一个servlet长时间不使用
3. 还有一种开发中的可能性,执行了reload操作
如果调用service方法的话,主要功能是区分是get请求还是post请求,如果是get请求,则调用doGet方法,如post请求,则调用doPost请求,但是一旦在子类中被覆写之后,则没有了区分此种的能力,所以doGet和doPost都失效了。
实际上,这种方法更像是一种设计的模板操作,只需要按照要求将方法覆写完成了,那么就可以实现响应的功能。
当然还有一点需要注意,在正常情况下,初始化是在servlet第一次使用的时候调用,如果需要在容器启动的时候,servlet可以直接进行初始化操作的话,可以设置web.xml文件,增加一个相应的配置参数,表示在容器启动的时候加载参数:
<load-on-startup>1</load-on-startup>
总结:
1. 最重要的就是service方法,doGet,doPost是专门负责处理请求的。
2. 通过配置web.xml文件可以在服务器启动时自动初始化servlet
Servlet程序开发-- Servlet生命周期的更多相关文章
- Servlet程序开发--Servlet 与 表单
servlet程序: doPost方法时为了防止表单提交时post方式的问题.否则只能处理get请求 package org.lxh.servletdemo ; import java.io.* ; ...
- Servlet程序开发--Servlet简介
使用java语言开发的服务器端程序,可以生成动态web页,运行在服务器端,由服务器调用执行,是一种按照servlet标准开发的类. 先有servlet,后有jsp,jsp骨子里依然是servlet. ...
- Servlet程序开发-- servlet跳转
跳转:服务器端,客户端 客户端跳转:<response.sendRedirect>地址栏跳转之后改变,无法传递request范围的属性 服务器端跳转:<jsp:forward> ...
- HTTP协议 Servlet入门 Servlet工作原理和生命周期 Servlet细节 ServletConfig对象
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行--请求行用于描述客户端的请求方式.请求的资源名称,以及使用的HTTP协议版本号 请求行中的GET ...
- JavaWeb之 Servlet执行过程 与 生命周期
Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类实现了这个接口,这个类就是一个Servlet.Servlet下有一个实现类叫HttpServle ...
- JavaEE Servlet 核心方法及生命周期
做JavaWeb开发,免不了要和Servlet打交道.Servlet是Sun(Oracle)官方定义的一个Web开发规范,所有Servlet开发都必须遵守.自己以前也没有从头做过Web开发,所以这方面 ...
- [转]JavaWeb之 Servlet执行过程 与 生命周期
https://www.cnblogs.com/vmax-tam/p/4122105.html Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类 ...
- Servlet程序开发-Helloworld
D:\Workspace\WEB-INF\classes下新建HelloServlet.java文件: package org.lxh.servletdemo ; import java.io.* ; ...
- 【servlet】Servlet的API和生命周期]
创建时间:6.15 一.Servlet的API(生命周期) (1)Servlet接口中的方法 1)init(ServletConfig config) 何时执行:servlet对象创建的时候执行 Se ...
随机推荐
- js 鸭式辨型法
无意中看到arr.length === +arr.length;这句代码,然后就去了解了下 这是一种鸭式辨型的判断方法. 鸭式辨型:像鸭子一样走路.游泳和嘎嘎叫的鸟就是鸭子 这句话表示: a.arr有 ...
- hdu 5584 gcd/lcm/数学公式
input T 1<=T<=1000 x y output 有多少个起点可以走n(n>=0)步走到(x,y),只能从(x,y)走到(x,y+lcm(x,y))/(x+lcm(x,y) ...
- TCP网络编程小结
一.套接字编程基础 1.套接字地址结构 通用的地址结构是 struct sockaddr{ unsigned short sa_family; ]; } IPv4的套接字地址结构是 struct in ...
- Webdriver实现下载功能,屏蔽掉windows弹出的对话框,FireFox下设置浏览器的属性,两种实现方式:
一.使用一个全新的FireFox浏览器打开Web应用,浏览器不带任何插件,也未对浏览器做任何默认配置,但需要对浏览器属性进行配置 // 获取浏览器的所有配置文件 ProfilesIni allProf ...
- nmon 安装
安装: mkdir /usr/local/nmon cd /usr/local/nmon wget http://sourceforge.net/projects/nmon/files/nmon_li ...
- tomcat各目录(文件)作用
以tomcat7.0.50为例,主目录下有bin,conf,lib,logs,temp,webapps,work 7个文件夹 bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结 ...
- InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效
emWIN里面的无效重绘和windows很类似. WM_InvalidateArea()和WM_InvalidateRect()只重绘指定的区域,其他区域不会重绘,这样避免了闪烁,重绘发生在下次WM_ ...
- hdu_5763_Another Meaning(dp)
题目链接:hdu_5763_Another Meaning 题意: 一个文本串A,一个模式串B,如果文本串含有模式串B,那么就能组合成多种意思,如下: In the first case, “ heh ...
- CCF考试真题题解
CCF考试认证:题解参考博客http://blog.csdn.net/u014578266/article/details/45221841 问题描述 试题编号: - 试题名称: 图像旋转 时间限制: ...
- 错误: libstdc++.so.6: cannot open shared object file: No such file or directory
解压完别人提供的openwrt代码,编译时,出现如下错误: # configuration written to .config#mips-openwrt-linux-uclibc-gcc: erro ...