文章目录
- 1. 什么是 Servlet?
- 2. Servlet 的生命周期
- 2.1 init()
- 2.2 service()
- 2.3 destroy()
- 3. 创建 Servlet 类
- 4. Servlet 配置方式
- 4.1 创建步骤
- 4.2 重新构建并启动项目
- 4.3 启动Tomcat
- 5. 总结
1. 什么是 Servlet?
Servlet 是 Java Web 中用于处理客户端请求并返回响应的服务器端程序。 它运行在服务器上的 Servlet 容器(如 Tomcat)中,是 Java EE 的核心技术之一。
2. Servlet 的生命周期
Servlet 的生命周期由以下三个方法控制:
2.1 init()
- 作用:在 Servlet 被首次加载时执行,仅执行一次。用于执行初始化操作。
- 触发时机:容器首次加载该 Servlet 时调用。
@Override
public void init() throws ServletException {System.out.println("Servlet 初始化...");
}
2.2 service()
- 作用:每次收到请求时调用,用于处理客户端请求。
- 说明:内部会根据请求类型(GET、POST 等)调用对应的
doGet()
、doPost()
方法。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.getWriter().write("Hello from doGet!");
}
2.3 destroy()
- 作用:在 Servlet 被销毁前执行,用于释放资源。
- 触发时机:容器卸载 Servlet 或服务器关闭时调用。
@Override
public void destroy() {System.out.println("Servlet 销毁...");
}
3. 创建 Servlet 类
示例:HelloServlet.java
package com.example.servlet;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;public class HelloServlet extends HttpServlet {protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");resp.getWriter().write("<h1>Hello from Servlet!</h1>");}
}
创建步骤如下图:
创建好后如图:
4. Servlet 配置方式
- 方法:web.xml 配置(传统方式)
- 路径:WEB-INF/web.xml
4.1 创建步骤
手动右键 webapp → New → Directory → 输入 WEB-INF
然后右键 WEB-INF → New → File → web.xml
创建后输入以下内容
<servlet><servlet-name>helloServlet</servlet-name><servlet-class>HelloServlet</servlet-class>
</servlet><servlet-mapping><servlet-name>helloServlet</servlet-name><url-pattern>/hello</url-pattern>
</servlet-mapping>
4.2 重新构建并启动项目
4.3 启动Tomcat
方法同第1天所示(可查看前一天具体步骤)
建议进入 webapps 文件夹中手动删除老的 javaweb-demo/ 目录和 .war 文件,避免 Tomcat缓存老版本。
后在 IDEA 终端或命令行执行:
mvn clean package
后将 target/javaweb-demo.war 复制到 Tomcat 的 webapps 文件夹中。
再双击 startup.bat启动Tomcat。
最后浏览器访问地址:http://localhost:8080/javaweb-demo/hello
成功后如图:
5. 总结
项目 | 说明 |
---|---|
生命周期方法 | init() → service() → destroy() |
请求处理核心方法 | doGet() / doPost() 等 |
配置方式 | web.xml (传统)或 @WebServlet (注解) |
编写基本流程 | 创建类 → 继承 HttpServlet → 实现方法 → 配置路由 |