近期在学习javaweb方面的知识,借鉴视频教程上的例子,留作备注:

Servelet代码如下:

  1. package com.liuxgnu;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7.  
  8. public class TestServlet extends HttpServlet {
  9.  
  10. 	/**
  11. 	 * 
  12. 	 */
  13. 	private static final long serialVersionUID = 1L;
  14.  
  15.         /**
  16.          *构造方法
  17.          */
  18. 	public TestServlet()
  19. 	{
  20. 		System.out.println("Constructor");
  21. 	}
  22.  
  23.  
  24.         /**
  25.          *get请求处理
  26.          */
  27. 	@Override
  28. 	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
  29.                              throws ServletException, IOException
  30. 	{
  31. 		doPost(request, response); //转向post
  32. 	}
  33.  
  34.  
  35.         /**
  36.          *Post请求处理
  37.          */
  38. 	@Override
  39. 	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
  40.                               throws ServletException, IOException
  41. 	{
  42. 		System.out.println("doPost");
  43. 	}
  44.  
  45.  
  46.         /**
  47.          *销毁
  48.          */
  49. 	@Override
  50. 	public void destroy()
  51. 	{
  52. 		System.out.println("destroy");
  53. 	}
  54.  
  55.  
  56.         /**
  57.          *初始化
  58.          */
  59. 	@Override
  60. 	public void init() throws ServletException 
  61. 	{
  62. 		System.out.println("init");
  63. 	}
  64. }

Web.xml就不写了.

第一次请求Servlet的时候,后台打印:

  1. Constructor
  2. init
  3. doPost

由此可以看出,首先执行构造方法,然后执行初始化,然后才执行Post/Get方法.
而第二次访问Servlet的时候,并没有执行构造方法和初始化方法,那就说明,这个类已经生存,且听视频上老师的讲解说”①常规Servlet容器仅生成一个Servlet对象”,有些似懂非懂的样子,但从后台打印出来的结果看,确实只生成了一个对象.

第二次请求Servlet的时候,后台打印:

  1. Constructor
  2. init
  3. doPost
  4. doPost


注解:①常规Servlet容器仅生成一个Servlet对象
非分布式情况下,一个服务器端只生成一个Servlet实例.

发表评论

电子邮件地址不会被公开。 必填项已用*标注