JSP学习笔记——Servlet
简介
Servlet是一种用于构建Web应用程序的Java程序。它们在Web服务器上运行,并处理从客户端发来的请求。Servlet常用于生成动态网页内容、处理表单数据、与数据库交互等。Servlet通过Java编写,可以与其他Java类和库进行交互,从而实现各种功能。它们可以被部署到各种支持Java的Web服务器上,如Tomcat、Jetty等。Servlet通常用于构建复杂的Web应用程序,如电子商务网站、社交媒体平台等。通过使用Servlet,开发人员可以轻松地创建强大的、交互式的Web应用程序。
Servlet快速入门
Servlet生命周期
生命周期
对象的生命周期指一个对象从被创建到被销毁的整个过程
Servlet运行中Servlet容器中(web服务器),其生命周期由容器来管理,分为4个阶段
-
加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
-
初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次
-
请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的**service()**方法对请求进行处理。
-
服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的**destroy()**方法完成 资源的释放。在destroy()方法调用之后,容器会释放这个Servlet?实例,该实例随后会被ava的 垃圾收集器所回收
代码实操
package com.itheima.web;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
/**
* Servlet生命周期方法
*/
@WebServlet(urlPatterns = "/demo2",loadOnStartup = 1)
public class ServletDemo2 implements Servlet {
/**
* 初始化方法
* 1.调用时机:默认情况下,Servlet被第一次访问时,调用
* * loadOnStartup: 默认为-1,修改为0或者正整数,则会在服务器启动的时候,调用
* 2.调用次数: 1次
* @param config
* @throws ServletException
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("init...");
}
/**
* 提供服务
* 1.调用时机:每一次Servlet被访问时,调用
* 2.调用次数: 多次
* @param req
* @param res
* @throws ServletException
* @throws IOException
*/
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("servlet hello world~");
}
/**
* 销毁方法
* 1.调用时机:内存释放或者服务器关闭的时候,Servlet对象会被销毁,调用
* 2.调用次数: 1次
*/
public void destroy() {
System.out.println("destroy...");
}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
}
Servlet体系结构
体系结构图:

HttpServlet主要封装方法
-
doGet(HttpServletRequest request, HttpServletResponse response):
-
用于处理HTTP GET请求。
-
参数request包含了客户端请求的信息,如请求的URL、参数、头部信息等。
-
参数response用于向客户端发送响应。
-
-
doPost(HttpServletRequest request, HttpServletResponse response):
-
用于处理HTTP POST请求。
-
参数request包含了客户端请求的信息,如请求的URL、参数、头部信息等。
-
参数response用于向客户端发送响应。
-
-
doPut(HttpServletRequest request, HttpServletResponse response):
-
用于处理HTTP PUT请求。
-
参数request包含了客户端请求的信息,如请求的URL、参数、头部信息等。
-
参数response用于向客户端发送响应。
-
-
doDelete(HttpServletRequest request, HttpServletResponse response):
-
用于处理HTTP DELETE请求。
-
参数request包含了客户端请求的信息,如请求的URL、参数、头部信息等。
-
参数response用于向客户端发送响应。
-
urlPattern配置
-
Servlet 要想被访问,必须配置其访问路径 (urlPattern)
-
一个Servlet,可以配置多个urlPattern
@WebServlet(urlPatterns = {"/demo1", "/demo2"}) -
urlPattern 配置规则
-
精确匹配
-
配置路径:@WebServlet("/user/select")
-
访问路径:localhost:8080/web-demo**/user/select**
-
-
目录匹配
-
配置路径:@WebServlet("/user/*")
-
访问路径:
-
localhost:8080/web-demo**/user/aaa**
-
localhost:8080/web-demo**/user/bbb**
-
-
-
扩展名匹配
-
配置路径:@WebServlet("*.do")
-
访问路径:
-
localhost:8080/web-demo/aaa.do
-
localhost:8080/web-demo/bbb.do
-
-
-
任意匹配
-
配置路径:
-
@WebServlet("/")
-
@WebServlet("/*")
-
-
访问路径:
-
localhost:8080/web-demo/hehe
-
localhost:8080/web-demo/haha
-
-
/ 和 /* 区别:
当我们的项目中的Servleti配置了"/",会覆盖掉tomcat中的 DefaultServlet,.当其他的url-pattern都匹配不上时都会走这 个Servlet 当我们的项目中配置了“/*”,意味着匹配任意访问路径
-
-
-
- 感谢你赐予我前进的力量



