第8章 Web开发基础
-
- 8.1 Servlet与JSP
-
- 8.1.1 Servlet简介
- 8.1.2 JSP简介与使用
- 8.1.3 Servlet与JSP协作
- 8.2 Web服务器与Tomcat
-
- 8.2.1 安装与配置Tomcat
- 8.2.2 配置与管理Web应用
- 8.3 MVC设计模式与Java Web应用
-
- 8.3.1 MVC原理
- 8.3.2 MVC在Java Web中的应用
- 8.4 RESTful API设计与实现
-
- 8.4.1 RESTful API设计原则
- 8.4.2 实现RESTful API
- 总结
8.1 Servlet与JSP
8.1.1 Servlet简介
Servlet是Java平台用于扩展Web服务器功能的组件,通过实现javax.servlet.Servlet
接口或继承HttpServlet
抽象类来处理客户端HTTP请求并生成响应。Servlet允许开发者编写Java代码来执行复杂的业务逻辑,并根据请求动态生成内容。Servlet生命周期包含了初始化、服务请求和销毁三个阶段。
Servlet实例创建与生命周期
当客户端首次发起匹配到Servlet的请求时,Servlet容器(如Tomcat)会检查是否存在该Servlet的实例。如果不存在,则创建Servlet实例,并调用其init()
方法进行初始化。之后,每次请求到来都会调用service()
方法,根据请求类型(GET、POST等)选择合适的方法(doGet/doPost等)处理请求。当Web应用关闭时,Servlet容器会调用Servlet的destroy()
方法释放资源。
import javax.servlet.*;
import java.io.IOException;
@WebServlet(name = "HelloServlet", urlPatterns = "/hello") // 使用@Servlet注解简化配置
public class HelloServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
// 初始化操作,如加载配置、建立数据库连接等
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>Hello, World!</h1><p>This is a simple Servlet example.</p>");
}
// 对于POST请求同样可重写doPost方法
// ...
@Override
public void destroy() {
// 关闭资源,清理工作
}
}
8.1.2 JSP简介与使用
JavaServer Pages(JSP)是一种基于Java的服务器端脚本技术,允许开发者将静态HTML、CSS、JavaScript与Java代码混合编写在一个文件中。JSP被Web容器解析后转换为Servlet源码并编译执行。
在JSP中,可以通过JSP指令、脚本元素、表达式语言(EL)和自定义标签等方式实现动态内容输出。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>