Servlet学习笔记1: Servlet与Http介绍

1. 什么是Serlvet?

处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西。
Serlvet是由服务器调用的,运行在服务器端。

2. tomcat与servlet

  • Tomcat 是Web应用服务器,是一个Servlet/JSP容器.


3.HTTP协议

  • 请求头
  • 响应头

4.编写Servlet程序

1)实现Servlet有三种方式:

  • 实现 javax.servlet.Servlet 接口;
  • 继承 javax.servlet.GenericServlet类;
  • 继承 javax.servlet.http.HttpServlet类;
    实际开发中,我们通常会选择继承HttpServlet类来完成我们的Servlet

2) 实现Serlvet接口

  • 建一个自定义类,实现Serlvet接口
  • 5个方法需要重写,有init【初始化】,destroy【销毁】,service【服务】,getServletConfig【Servlet配置】,getServletInfo【Serlvet信息】
  • service()方法:写逻辑代码
public class myClass implements Servlet{
   ServletConfig config=null;
   @Override
   public void init(ServletConfig config){
      this.config=config;
      System.out.println("Initialization complete");
   }
   @Override
   public void service(ServletRequest req,ServletResponse res)
   throws IOException,ServletException{
       res.setContentType("text/html");
       PrintWriter pwriter=res.getWriter();
       pwriter.print("<html>");
       pwriter.print("<body>");
       pwriter.print("<h1>Servlet Example Program</h1>");
       pwriter.print("</body>");
       pwriter.print("</html>");
       //调用ServletResponse对象的方法向浏览器输出HelloWorld
       res.getWriter().write("Hello World"); 
   }
   @Override
   public void destroy(){
       System.out.println("servlet life cycle finished");
   }
   @Override
   public ServletConfig getServletConfig(){
       return config;
   }
   @Override
   public String getServletInfo(){
       return "A Demo program written by Chaitanya";
   }
}

3)HttpServlet 类

HttpServlet类已经实现了Servlet接口的所有方法,编写Servlet时,只需要继承HttpServlet,重写你需要的方法即可,并且它提供了对HTTP请求的特殊支持,更加强大

service()方法

在 HttpServlet 的 service(ServletRequest,ServletResponse)方法中会把 ServletRequest 和ServletResponse 强转成 HttpServletRequest 和 HttpServletResponse

doGet() 和 doPost()

在HttpServlet的service(HttpServletRequest,HttpServletResponse) 方法会去判断这个请求是GET还是POST,如果是GET请求,就去调用类中的doGet()方法,如果是POST请求,就去调用doPost()方法,这说明我们在子类中去覆盖doGet()或doPost()方法就可以了

5.Servlet的生命周期

  • 加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
  • 初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象
  • 处理服务。当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求
  • 销毁。当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁
  • 卸载。当Servlet调用完destroy()方法后,等待垃圾回收。如果有需要再次使用这个Servlet,会重新调用init()方法进行初始化操作。

简单总结:只要访问Servlet,service()就会被调用。init()只有第一次访问Servlet的时候才会被调用。
destroy()只有在Tomcat关闭的时候才会被调用。


Servlet知识点
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容