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,可以尽量选择该类。
快速入门:
-
创建一个类,继承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() 方法!!!"); } } -
创建一个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> -
浏览器访问
-
访问 http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/demo02
提交方式默认为 get 方式,控制台输出:“doGet() 方法!!!”
-
访问 http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/HelloHttpServlet.html 效果如下:
- post提交,页面跳转到http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/demo02,控制台输出:doPost() 方法!!!
- get提交,页面跳转到http://localhost:8080/HTTPServletAndGenericServlet_war_exploded/demo02,控制台输出:doGet() 方法!!!
-
@WebServlet 的 urlpartten 参数说明
-
写法1:
@WebServlet("/demo1")
该类的url路径为 /demo1
-
写法2:
@WebServlet("/demo1", "demo2", "demo3", ... , "demoN")
该类的url路径可是是:/demo1、/demo2、/demo3、 ...... 、/demoN
-
写法3:
@WebServlet("/*")
该类的url路径无论是什么都可以
本文来自博客园,作者:LeeHua,转载请注明原文链接:https://www.cnblogs.com/liyihua/p/14477488.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)