zoukankan      html  css  js  c++  java
  • servlet和http请求协议

    Servlet的体系结构

    HttpServlet --抽象类

            |  继承

    GenericServlet --抽象类

            |  实现

    Servlet --接口

    GenericServlet :将Servlet接口中的其他方法变成了默认空实现,只有将service()方法作为抽象

      如果将来定义servlet类时不用实现Servlet接口而是去继承GenericServlet类时,不用重写其他的方法,只用重写service()方法即可

      ServletDemo2(继承GenericServlet类) :

    package wtf.servlet;
    
    import javax.servlet.GenericServlet;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebServlet;
    import java.io.IOException;
    
    @WebServlet("/demo2")
    public class ServletDemo2 extends GenericServlet {
        @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("GenericServlet");
        }
    }

    HttpServlet:对http协议的一种封装,简化操作

      如果将来定义servlet类时不用实现Servlet接口而是去继承HttpServlet类时,不用重写其他的方法,而只需根据请求类型来重写doGet或者是doPost方法即可

      HttpServlet图解:

       ServletDemo3(继承HttpServlet类) :

    package wtf.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/demo3")
    public class ServletDemo3 extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("use get");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("use post");
        }
    }

      login.html(分别使用doGet和doPost方法):

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登录</title>
    </head>
    <body>
    <!--这里method如果是get,控制台会输出的是use get,method如果是post,控制台会输出的是use post-->
        <form action="/demo3" method="post">
            <input name="username">
            <input type="submit" value="提交">
        </form>
    </body>
    </html>

  • 相关阅读:
    PHP实反向代理-收藏
    微信小程序实例-获取当前的地理位置、速度
    Entity Framework Core 实现读写分离
    将ASP.NET Core应用程序部署至生产环境中(CentOS7)(转)
    Centos 7防火墙firewalld开放80端口
    Asp.net Core 使用Redis存储Session
    .net core 使用Autofac依赖注入
    .net core 1.0 实现负载多服务器单点登录
    用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
    阿里大鱼.net core 发送短信
  • 原文地址:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/12827438.html
Copyright © 2011-2022 走看看