1、localhost:8080访问的是服务器,后面是服务器的项目,demo是servlet中webSerlet()配置的路径
2、servlet被访问成功之后,servlet就自动被执行了,serices想要自动执行,必须要有一个对象,叫servlet对象,他是有web服务器创建的,Tomcat,并且方法也是他调用的
3、Tomcat调用serivce()方法之后,客户端就能够响应,返回对应的数据,就是前端
4、Request就能够返回浏览器中对应的一些信息了,Request请求数据,response响应数据
servlet生命周期,他由Tomcat什么时候,被创建,什么时候,被销毁
1. package com.itheima.web; 2. 3. import javax.servlet.*; 4. import javax.servlet.annotation.WebServlet; 5. import java.io.IOException; 6. /** 7. * Servlet生命周期方法 8. */ 9. @WebServlet(urlPatterns = "/demo2",loadOnStartup = 1) 10. public class ServletDemo2 implements Servlet { 11. 12. /** 13. * 初始化方法 14. * 1.调用时机:默认情况下,Servlet被第一次访问时,调用 15. * * loadOnStartup: 默认为-1,修改为0或者正整数,则会在服务器启动的时候,调用 16. * 2.调用次数: 1次 17. * @param config 18. * @throws ServletException 19. */ 20. public void init(ServletConfig config) throws ServletException { 21. System.out.println("init..."); 22. } 23. 24. /** 25. * 提供服务 26. * 1.调用时机:每一次Servlet被访问时,调用 27. * 2.调用次数: 多次 28. * @param req 29. * @param res 30. * @throws ServletException 31. * @throws IOException 32. */ 33. public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 34. System.out.println("servlet hello world~"); 35. } 36. 37. /** 38. * 销毁方法 39. * 1.调用时机:内存释放或者服务器关闭的时候,Servlet对象会被销毁,调用 40. * 2.调用次数: 1次 41. */ 42. public void destroy() { 43. System.out.println("destroy..."); 44. } 45. public ServletConfig getServletConfig() { 46. return null; 47. } 48. 49. public String getServletInfo() { 50. return null; 51. } 52. 53. 54. }
1、第一个阶段:被访问时才被创建
1.1 servlet启动的时候很耗时,因此我们可以提前创建:
1. @WebServlet(urlPatterns = "/demo1",loadOnStartup = 1) 2. loadOnstartup的取值有两类情况 3. (1)负整数:第一次访问时创建Servlet对象 4. (2)0或正整数:服务器启动时创建Servlet对象,数字越小优先级越高
2、 第二个阶段初始化(servlet对象被创建的那个过程,只会被执行一次):这个阶段在servlet被创建之后,自动的被Tomcat来进行调用,将来这个方法我们要复写他,并且要写一个逻辑,比如将来我们在servlet要用到一些资源,我们要加载资源文件
3、请求处理阶段,serive()被调用时用
4、destroy中销毁init调用的资源
使用案例init,
只要这个方法被调用,就执行一次