zoukankan      html  css  js  c++  java
  • Servlet学习笔记4

    对于Servlet接口而言,实现该接口,都要覆盖重写该接口的所有抽象方法。GenericServlet 是 Servlet接口的实现类,它对Servlet的所有抽象方法都进行了覆盖重写(都做了默认的空实现),其中有一个方法是抽象方法,那就是提供服务的方法 service 方法。

    GenericServlet 类的简单学习

    创建项目,直接继承GenericServlet类,并覆盖重写service方法:

    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(urlPatterns="/demo01")
    public class ServletDemo01 extends GenericServlet {
        @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse)
                throws ServletException, IOException {
            System.out.println("覆盖重写GenericServlet抽象方法~~~");
        }
    }
    

    启动服务器,访问 http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/demo01 即可。

    HttpServlet 类的简单学习

    HttpServlet 类是 GenericServlet 类的子类,该类对HTTP协议进行了简单的封装,用到Servlet,可以尽量选择该类。

    快速入门:

    1. 创建一个类,继承HttpServlet类,覆盖重写doGet()方法、doPost()方法:

      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("/demo02")
      public class ServletDemo02 extends HttpServlet {
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                  throws ServletException, IOException {
              System.out.println("doGet() 方法!!!");
          }
      
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                  throws ServletException, IOException {
              System.out.println("doPost() 方法!!!");
          }
      }
      
    2. 创建一个HTML文件,用于测试: HelloHttpServlet.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Servlet Demo02</title>
      </head>
      <body>
          <!-- 路径指定为 demo02,请求方法为 post -->
          <form action="/HTTPServletAndGenericServlet_war_exploded/demo02" method="post">
              <input name="username">
              <input type="submit" value="post提交">
          </form>
          <!-- 路径指定为 demo02,请求方法为 get -->
          <form action="/HTTPServletAndGenericServlet_war_exploded/demo02" method="get">
              <input name="username">
              <input type="submit" value="get提交">
          </form>
      </body>
      </html>
      
    3. 浏览器访问

      1. 访问 http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/demo02

        提交方式默认为 get 方式,控制台输出:“doGet() 方法!!!

      2. 访问 http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/HelloHttpServlet.html 效果如下:

    @WebServlet 的 urlpartten 参数说明

    1. 写法1:@WebServlet("/demo1")

      该类的url路径为 /demo1

    2. 写法2:@WebServlet("/demo1", "demo2", "demo3", ... , "demoN")

      该类的url路径可是是:/demo1、/demo2、/demo3、 ...... 、/demoN

    3. 写法3:@WebServlet("/*")

      该类的url路径无论是什么都可以

    Good Good Write Bug, Day Day Up
  • 相关阅读:
    iOS推送通知
    KVO内部实现原理
    沙盒目录结构
    UITableView的常用属性和代理方法
    优秀文章的链接
    c++面试题
    递归练习
    c#连接mysql环境配置
    mysql命令详解
    十进制转二进制
  • 原文地址:https://www.cnblogs.com/liyihua/p/14477488.html
Copyright © 2011-2022 走看看