Servlet与JSP:Java的秘密花园入口
1 Servlet概述
Servlet是Java Web应用中的一个核心组件,它是一个运行在服务器端的Java程序,可以响应客户端的请求并生成响应。Servlet为Web应用提供了一个统一的接口来处理HTTP请求。
2 Servlet的生命周期
Servlet的生命周期包括以下几个阶段:
-
加载和实例化:当请求到达时,Servlet容器(如Tomcat)加载Servlet类并创建一个实例。
-
初始化:调用
init()
方法初始化Servlet实例。 -
请求处理:调用
service()
方法处理请求,该方法根据请求类型(GET、POST等)分发到doGet()
或doPost()
等方法。 -
销毁:当Servlet不再需要时,调用
destroy()
方法进行清理,然后销毁实例。
3 创建Servlet
创建Servlet需要继承HttpServlet
类并实现doGet()
或doPost()
方法。
示例代码(简单的Servlet):
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应内容类型
response.setContentType("text/html;charset=UTF-8");
// 实际的业务逻辑
PrintWriter out = response.getWriter();
try {
out.println("<html><body>");
out.println("<h1>Hello, World!</h1>");
out.println("</body></html>");
} finally {
out.close();
}
}
}
4 配置Servlet
Servlet需要在web.xml
文件中配置,或者使用注解进行配置。
示例配置(使用web.xml):
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<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>
</web-app>
5 JSP概述
JSP是一种动态网页技术,它允许开发者在HTML中嵌入Java代码,生成动态内容。JSP页面最终被编译成Servlet,然后在服务器上执行。
6 JSP的生命周期
JSP的生命周期包括编译、请求处理和销毁。
-
编译:JSP页面首次请求时被编译成Servlet。
-
请求处理:每次请求JSP页面时,Servlet都会被调用。
-
销毁:当Web应用被卸载时,JSP对应的Servlet实例被销毁。
7 创建JSP页面
创建JSP页面需要使用.jsp
扩展名,并可以在其中嵌入Java代码。
示例代码(简单的JSP页面):
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
8 JSP指令和标记
JSP页面可以使用指令(如<%@ page %>
)和标记(如<jsp:forward>
)来控制页面的行为。
9 模型-视图-控制器(MVC)
Servlet和JSP通常结合在一起使用,遵循MVC架构模式,其中Servlet作为控制器,JSP作为视图。
10 会话管理
Servlet和JSP可以使用HttpSession
对象来管理用户会话。
示例代码(会话管理):
HttpSession session = request.getSession();
session.setAttribute("username", "John Doe");
String username = (String) session.getAttribute("username");
通过这一节的学习,你现在应该对Servlet和JSP有了深入的理解。Servlet和JSP是Java Web开发的基石,它们为构建动态Web应用提供了强大的工具。掌握Servlet和JSP,可以帮助你有效地创建和管理Web应用的动态内容。下一节,我们将探讨MVC架构,这是Java Web应用的秘密花园布局。