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 ...
随机推荐
- NodeJS 学习笔记一
他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS.但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持 ...
- java代理的深入浅出(一)-Proxy
java代理的深入浅出(一)-Proxy 1.什么是代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事 ...
- android 按钮Button单击背景切换
res/drawable/btn_selected.xml <?xml version="1.0" encoding="utf-8"?> <s ...
- JDK,Tomcat,myeclipse相关资料
配置JDK(安装oracle必须先配好jdk): 1.右击计算机-属性-高级系统设置-高级-环境变量,弹出“环境变量”对话框.在Administrator的用户变量里添加: JAVA_HOME指明JD ...
- 【转】使用DirectUI技术实现QQ界面
转自http://bbs.csdn.net/topics/350023031 一.介绍 DirectUI技术说白了就是XML配置文件+图片+JavaScript控制界面.这点与网页css+图片+Jav ...
- VBS中解决路径带空格的三种方法
vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法: 在应用程序前后分别加三个双引号,代码如下: Set wshell=CreateObject(&qu ...
- LeetCode OJ 109. Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- java返回json数据日期为一串数字字符串 js 转义
var time = "2514484555"; //这只是事例,并不是实际的数据 function timeToString(time) { var datetime = new ...
- git 创建分支,删除分支,管理分支
参考 http://blog.csdn.net/dijason/article/details/9042425 查看分支: 1 查看本地分支: $ git branch 2 查看远程分支 $ g ...
- javascript IP验证
//IP验证function isIP(strIP){try{if(strIP.length<7){return false;}var re=/^(\d+)\.(\d+)\.(\d+)\.(\d ...