Servlet——Servlet生命周期

package com.jd.servlet;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DataServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    
	//Servlet对象属于单实例(程序运行结束之前。缓存中只有一个对象存在)
    public DataServlet() {//用于为成员变量赋值,会触发对象创建:默认情况下,第一次使用该Servlet时创建该对象;如果在web.xml添加<load-on-startup>1</load-on-startup>,则Servlet对象随着Tomcat的启动而创建,项目发布前
        super();
        System.out.println("DataServlet"+this);
    }

	@Override
	public void init() throws ServletException {//Servlet对象创建后,用于获取初始化的web.xml数据,该方法执行,由于Servlet对象是单例,该方法只执行一次
		super.init();
		String  name=getServletContext().getInitParameter("name");
		System.out.println("####"+name);//获取多个Servlet共享的值
		
		String mobile=super.getInitParameter("mobile");
		System.out.println("000"+mobile);//获取自己Servlet的值
	}
	
	@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		System.out.println("init(ServletConfig config)"+this);
		String name = config.getServletContext ().getInitParameter("name");
		System.out.println("####"+name);获取多个Servlet共享的值
		
		String mobile=config.getInitParameter("mobile");
		System.out.println("000"+mobile);获取自己Servlet的值
		
	}

	//a标签链接,form表单指定method标签属性get,异步不写或者指定为get
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doGet"+this);
	}

	//form表单指定method标签属性post,异步指定为post
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doPost"+this);
	}
	
	@Override
	public void destroy() {//Servlet对象被销毁之前调用,用于释放资源,由于Servlet对象是单例,仅仅创建一次,所以该方法只执行一次,Tomcat服务器关闭时调用,项目发布前
		super.destroy();
		System.out.println("destroy"+this);
	}
	
	//任何请求优先到达,进而通过该方法确定执行doGet还是doPost
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		super.service(arg0, arg1);
		System.out.println("service"+this);
	}	

}
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
   	<param-name>mobile</param-name>
   	<param-value>110</param-value>
  </context-param>
  <servlet>
  	<servlet-name>TestServlet</servlet-name>
  	<display-name>TestServlet</display-name>
  	<description></description>
  	<servlet-class>com.jd.servlet.TestServlet</servlet-class>
  	<init-param>
  		<param-name>name</param-name>
  		<param-value>Jimmy</param-value>
  	</init-param>
  </servlet>
  <servlet>
  	<servlet-name>DataServlet</servlet-name>
  	<display-name>DataServlet</display-name>
  	<description></description>
  	<servlet-class>com.jd.servlet.DataServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>TestServlet</servlet-name>
  	<url-pattern>/TestServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>DataServlet</servlet-name>
  	<url-pattern>/DataServlet</url-pattern>
  </servlet-mapping>
  
  <error-page>
  	<error-code>404</error-code>
  	<location>/404.jsp</location>
  </error-page>
  <error-page>
  	<error-code>500</error-code>
  	<location>/500.jsp</location>
  </error-page>
</web-app>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值