Servlet执行流程
在JavaWeb——Servlet简介以及入门案例_北岭山脚鼠鼠的博客-CSDN博客这个入门案例里面,实现了通过http://localhost:8080/web-demo/demo1该路径实现了对web项目的访问
url分为了三部分,http://localhost:8080/ 实现了连接Tomcat服务器,web-demo实现了连接该web项目,demo1实现了对类的访问
在这个过程里面,ServletDemo1这个是实现类对象的创建和里面的service()方法的调用都是由Tomcat_web服务器自动执行并且发回相应数据给前端。
Servlet生命周期
init方法
/**
* 初始化方法
* 1. 调用时机:默认情况下,Servlet被第一次访问时,调用
* * loadOnStartup:
* 2. 调用次数:1次
* @param config
* @throws ServletException
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init...");
}
要想改变init方法的调用次数需要用到@WebServlet注解里面的loadOnStartup属性,一个注解里面有两个属性要补齐属性名称,url的属性名称在下面有两个,value和urlPatterns。
然后加上 loadOnStartup = 1,随后重启一遍服务器就是可以看见还没访问这个类就已经执行了init方法。
Service方法
/**
* 提供服务
* 1. 调用时机:每一次Servlet被访问时,调用
* 2. 调用次数:多次
*
*
* @param req
* @param res
* @throws ServletException
* @throws IOException
*/
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("servlet hello world~");
}
destory方法
/**
* 销毁方法
* 1. 调用时机:内存释放或者服务器关闭的时候,Servlet对象会被销毁,调用
* 2. 调用次数:1次
*/
@Override
public void destroy() {
System.out.println("destroy...");
}
通过命令行手动启动web项目
ctrl+c正常关闭就会执行deatory方法