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路径无论是什么都可以

posted @   LeeHua  阅读(85)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航