文章目录
- 1. Servlet概述
- 1.1 定义
- 1.2 作用
- 2. 主要知识点
- 2.1 生命周期
- 2.2 请求处理
- 2.3 Servlet配置
- 3. 案例演示
- 3.1 创建Web应用项目
- 3.2 修改项目工件名
- 3.3 重新部署Web项目
- 3.4 创建WelcomeServlet
- 3.5 编写`doGet`方法代码
- 3.6 编写`doPost`方法代码
- 3.7 访问WelcomeServlet
- 4. 小结
大家好,今天我们将一起探索Java Servlet的奥秘。Servlet是Java EE中非常重要的一个组件,它是运行在服务器端的小程序,专门用来处理客户端的请求,并生成动态的响应内容。接下来,我们将通过一系列的步骤,从Servlet的基础知识到实际的案例演示,深入了解Servlet的工作原理和应用。
1. Servlet概述
1.1 定义
首先,我们来定义一下什么是Servlet。Servlet是服务器端的Java小程序,它遵循特定的规范,可以接收客户端的请求,进行处理,然后生成响应。
1.2 作用
Servlet的作用非常广泛,它可以用于实现动态网页的生成、处理用户的请求、与数据库进行交互等。在企业级Web应用中,Servlet是不可或缺的基础组件之一。
2. 主要知识点
2.1 生命周期
Servlet的生命周期包括四个阶段:加载和实例化、初始化、服务和销毁。
- 加载和实例化:当客户端第一次访问Servlet时,服务器会加载Servlet类并创建一个实例。
- 初始化:通过调用
init()
方法,进行Servlet的初始化工作。 - 服务:Servlet通过
service()
方法来处理客户端的请求。service()
方法会根据请求的类型,调用doGet()
或doPost()
方法。 - 销毁:当Servlet不再被使用时,服务器会调用
destroy()
方法,进行资源的释放。
2.2 请求处理
Servlet处理请求的类型主要包括GET和POST。通过HttpServletRequest
对象获取请求参数,通过HttpServletResponse
对象生成响应。
2.3 Servlet配置
Servlet可以通过两种方式进行配置:传统的web.xml
配置和注解配置。
3. 案例演示
3.1 创建Web应用项目
我们将从创建一个Jakarta EE项目开始,命名为ServletDemo。
- 在IDE中创建一个新的Jakarta EE项目。
- 单击【Next】按钮,配置项目的相关设置。
- 单击【Create】按钮,完成项目的创建。
- 删除不必要的
HelloServlet
文件。
3.2 修改项目工件名
将项目的工件名从ServletDemo:war exploded
改成ServletDemo
,以便于部署。
3.3 重新部署Web项目
- 先移除项目,然后进行修复。
- 切换到【Server】选项卡,查看项目的URL。
- 启动服务器,查看项目的首页。
3.4 创建WelcomeServlet
- 在
net.huawei.servletdemo
包里创建WelcomeServlet
类。 - 通过添加
@WebServlet
注解,设置访问的URL。 - 继承
HttpServlet
类,并提供处理HTTP请求的方法,包括doGet
和doPost
。
package net.huawei.servletdemo;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* 功能:欢迎处理程序
* 作者:华卫
* 日期:2024年10月28日
*/
@WebServlet(urlPatterns = "/welcome")
public class WelcomeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
3.5 编写doGet
方法代码
在doGet
方法中,我们将设置响应对象的字符编码,创建日期对象,并格式化输出到客户端。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置响应对象字符编码
response.setCharacterEncoding("UTF-8");
// 创建日期对象
Date currentDate = new Date();
// 创建简单日期格式对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 获取打印字符输出流
PrintWriter out = response.getWriter();
// 向客户端输出页面
out.print("<html>");
out.print("<head>");
out.print("<title>欢迎</title>");
out.print("</head>");
out.print("<body style='text-align: center'>");
out.print("<h1 style='color: red'>欢迎访问泸州职业技术学院</h1>");
out.print("<h3 style='color: blue'>" + sdf.format(currentDate) + "</h3>");
out.print("</body>");
out.print("</html>");
}
3.6 编写doPost
方法代码
doPost
方法中,我们可以直接调用doGet
方法来处理POST请求。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
3.7 访问WelcomeServlet
-
重启服务器,访问
http://localhost:8080/welcome
。
-
如果遇到乱码问题,可以通过修改浏览器的字符编码为
UTF-8
来解决。
-
刷新页面,观察时间的变化。
4. 小结
通过今天的实战,相信大家对Servlet有了更深入的了解。Servlet不仅在理论上重要,在实际的Web开发中也是极其实用的技术。希望大家能够在实际的项目中灵活运用Servlet,构建出功能强大的Web应用。