一、Servlet 與 JSP 簡介
Java Servlet 和 JavaServer Pages(JSP)是 Java EE 平台的關鍵技術。它們是動態 Web 內容生成的核心組成部分,通過從客戶端瀏覽器接收請求並生成響應來啟用 Web 服務器交互。
Servlet 和 JSP 使用 javax.servlet 包提供了一套 Web 應用程序開發接口,並由 Java EE 容器提供運行環境。
Servlet 是一個 Java 類,開發人員可以通過繼承實現這個類,使用 HTTP 協議處理客戶端請求。而 JSP 是一種動態網頁技術,可以將 HTML、Java 代碼和 JSP 標記混合在一起,使頁面內容更加靈活。
二、javax.servlet 包概述
javax.servlet 包提供了處理 Web 請求和響應的 API。它包含了一些類和接口,例如 Servlet、Filter、Listener 等。這些接口提供了用於處理請求和響應的方法、類和常量。
下面是一些 javax.servlet 包中常用的 API:
javax.servlet.Servlet javax.servlet.ServletConfig javax.servlet.ServletContext javax.servlet.ServletException javax.servlet.ServletOutputStream javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse javax.servlet.http.HttpSession javax.servlet.RequestDispatcher javax.servlet.Filter javax.servlet.FilterChain javax.servlet.FilterConfig javax.servlet.GenericServlet javax.servlet.ServletRequest javax.servlet.ServletResponse javax.servlet.SingleThreadModel
三、Servlet 的生命周期
Servlet 的生命周期從 Servlet 容器加載或初始化該 Servlet 開始,直到 Servlet 容器關閉或卸載該 Servlet。包括以下三個階段:
1. 初始化階段:在第一次請求 Servlet 時,Servlet 容器使用 init() 方法初始化 Servlet,並創建 Servlet 實例。開發人員可以在該方法中編寫初始化 Servlet 所需的代碼。
2. 執行請求階段:當客戶端瀏覽器發送請求到 Web 服務器時,Servlet 容器會調用 service() 方法來處理 Request,並將處理結果寫回客戶端瀏覽器。
3. 終止階段:在 Servlet 容器關閉或 Servlet 卸載時,Servlet 容器會調用 destroy() 方法來停止 Servlet 實例並收回其資源。
四、過濾器(Filter)
Filter 是在 Servlet 容器接收到客戶端請求和發出響應之間執行的一組操作的 API。Filter 可以根據需要修改請求和響應。
Filter 作用於 Servlet 和 JSP,並可以處理來自 Web 服務器的任何類型的請求和響應。Filter 鏈提供在多個 Filter 之間處理 Request 的機制。
Filter 將一個或多個 Servlet 和 JSP 包裝在一個過濾器鏈(Filter Chain)中。過濾器鏈由一系列 Filter 和目標 Servlet 或 JSP 組成。
五、示例代碼
下面是一個簡單的 Servlet 和對應的 JSP。
Servlet:
import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); response.getWriter().println("<html><body>"); response.getWriter().println("Hello, World!
"); response.getWriter().println(""); } }
JSP:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.util.Date" %> <html> <head> <title>Hello, World!</title> </head> <body> <h1>Hello, World!</h1> <p>The time on the server is <%=new Date()%></p> </body> </html>
以上就是一個簡單的 Hello World 實例,使用了 javax.servlet 包提供的一些核心 API。
原創文章,作者:XAGVI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/373180.html