美文网首页
Servlet学习笔记1: Servlet与Http介绍

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

作者: 奔跑的程序媛A | 来源:发表于2021-02-05 14:26 被阅读0次

    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知识点

    相关文章

      网友评论

          本文标题:Servlet学习笔记1: Servlet与Http介绍

          本文链接:https://www.haomeiwen.com/subject/bnzptltx.html