Java Servlet 和 JSP 協同處理 HTTP 請求,其中 Servlet 負責處理請求和產生回應,而 JSP 透過嵌入的 Java 程式碼建立動態 HTML 輸出。兩者協作:1. Servlet 處理請求並產生資料。 2. JSP 存取 Servlet 產生的資料並建立 HTML 頁面。 3. Servlet-JSP 架構中,Servlet 處理業務邏輯,而 JSP 展示資料。
Java Servlet 和JSP 的協作
簡介
Servlet 和JSP 是Java Web 開發中的兩個核心技術。 Servlet 是 Java 應用程序,用於處理 HTTP 請求和回應,而 JSP 是一種 Java 模板技術,用於建立可顯示到 Web 頁面上的動態內容。本教學將探討 Servlet 和 JSP 如何協同工作,並提供一個實戰案例。
處理請求
當客戶端傳送 HTTP 請求到 Web 伺服器時,伺服器會將請求分派到適當的 Servlet。 Servlet 負責處理請求並產生回應。它可以存取 HTTP 請求和回應對象,並執行任務,例如從資料庫中檢索資料或產生 HTML 頁面。
JSP 的協作
JSP 頁面嵌入了 Java 程式碼,該程式碼可以動態產生 HTML 輸出。當 JSP 頁面顯示到 Web 瀏覽器時,伺服器首先將 JSP 程式碼編譯為 Servlet。編譯後的 Servlet 然後被實例化和執行,基本上就像一個常規 Servlet。
Servlet-JSP 架構
在傳統的 Servlet-JSP 架構中,Servlet 負責處理業務邏輯並產生 HttpServletResponse 物件。此響應對象然後作為 JSP 頁面中表達式的輸入。 JSP 頁面從 HttpServletResponse 物件中檢索資料並產生 HTML 頁面。
實戰案例
範例Servlet
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/GetUserServlet") public class GetUserServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取请求参数 String username = request.getParameter("username"); // 从数据库中获取用户对象 User user = getUserFromDB(username); // 将用户对象存储在请求属性中 request.setAttribute("user", user); } }
範例JSP
<%@ page import="com.example.User" %> <%@ page contentType="text/html" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <body> <h1><%= user.getUsername() %></h1> <p><%= user.getEmail() %></p> </body> </html>
互動
當客戶端向/GetUserServlet 發送GET 請求時,Servlet 將從資料庫中檢索指定使用者名稱的使用者物件。然後,它將使用者物件儲存在請求屬性中。 JSP 頁面使用該請求屬性來顯示使用者的資訊。
結論
Servlet 和 JSP 透過一個互動式流程協同工作,其中 Servlet 處理請求並產生數據,而 JSP 使用這些數據產生動態 HTML 輸出。這種架構為創建互動式和動態的 Web 應用程式提供了強大的基礎。
以上是Java Servlet如何與JSP協同工作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!