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>