在 Java Web 開發中,Servlet 是處理 HTTP 請求的核心組件。有時我們需要在 Servlet 中直接生成並返回 HTML 頁面,而不透過 JSP 或模板引擎。這在輕量級回應、測試或特定場景下非常實用。
HttpServlet 類別並覆寫 doGet 或 doPost 方法。HttpServletResponse 設定內容類型為 text/html,並指定字元編碼(建議 UTF-8)。PrintWriter 物件,直接寫入 HTML 字串。flush() 和 close() 確保資料送達客戶端。@WebServlet("/hello-html")
public class HelloHtmlServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1. 設定回應內容類型與編碼
response.setContentType("text/html;charset=UTF-8");
// 2. 取得輸出流
PrintWriter out = response.getWriter();
// 3. 直接輸出 HTML 內容
out.println("");
out.println("");
out.println("Servlet 直接輸出 HTML ");
out.println("");
out.println("Hello from Servlet!
");
out.println("當前時間:" + new java.util.Date() + "
");
out.println("");
out.println("");
// 4. 刷新並關閉
out.flush();
out.close();
}
}
charset=UTF-8 可避免中文亂碼問題。掌握 Servlet 直接輸出 HTML 的技巧,有助於理解 Servlet 容器處理請求/回應的底層機制,也是進階學習 Filter、Listener 等組件的基礎。