1.在Eclipse 内部可以把Tomcat 版本设置成3.0 这样就可以省略掉书写web.xml 文件
2.在接下来的操作过程中以下项目不要勾选
3.这个时候可以观察project Exploer中,WEB-INF 底下的lib 是没有所谓的 web.xml 这个文件
.
3.然后在src 底下创建一个servlet 并对其进行一些简单的配置
4.可以选中以下这些的,后面对servlet 运行的周期会进行说明
.
5.代码如下:内部可以设置成一个@WebServlet(urlPatterns="/FristServlet",loadOnStartup=0) 其中loadOnStartup (1.)可以不进行设置,也就是默认,默认值为一个负数,此时运行Tomcat 控制台不会有任何输出,当你在浏览器输入http://localhost/day25/FristServlet时,控制台会输出: 实例化-- 初始化-- demo--最后当在servers 右击stop 时,控制台还会显示 销毁。(2.)当你对loadOnStartup 进行设置时,比如loadOnStartup=0;或者正数,这时启动Tomcat 会发现控制台会打印出 实例化-- 初始化 ,在浏览器输入http://localhost/day25/FristServlet 时,控制台会相应的输出 demo ,最后当在servers 右击stop 时,控制台还会显示销毁。当然数字越大,启动Tomcat 后相应的实例化、初始化、也会变慢。
package com.lin.servlet;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Tomcat设置为3.0
*/
@WebServlet(urlPatterns="/FristServlet",loadOnStartup=0)
public class FristServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public FristServlet() {
super();
System.out.println("实例化");
}
public void init(ServletConfig config) throws ServletException {
System.out.println("初始化");
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo");
}
public void destroy() {
System.out.println("销毁");
}
}
6.以上说明的就是servlet 的一个周期问题:可以做如下总结:
servlet生命周期:
Servlet在第一次被访问时创建Servlet实例, 创建之后服务器会立即调用init方法进行初始化的操作, 创建之后, Servlet实例会一直驻留在服务器的内存中, 为后续的请求服务. 只要有请求来访问这个Servlet, 服务器就会调用service方法来处理请求, 直到服务器关闭, 或者WEB应用被移出容器, 随着WEB应用的销毁, Servlet实例也会跟着销毁, 在销毁之前服务器会调用destroy方法进行善后的处理.