在 Eclipse 中部署 Tomcat 專案,訪問 https://localhost:8080 時,頁面僅顯示 LoginServlet 列印的字串,而 Login.html 的表單內容完全不顯示,控制台也無報錯資訊。已在 server.xml 中添加相關配置但問題依舊。
最常見原因是 web.xml 中未正確配置 LoginServlet 的 <servlet-mapping>,導致請求無法正確路由到 Servlet,或靜態資源(HTML、CSS、JS)被錯誤攔截。
若直接訪問專案根路徑,Tomcat 需在 web.xml 中配置 <welcome-file-list> 指定預設頁面(如 Login.html),否則可能顯示目錄列表或 404。
若 server.xml 中的 <Context> docBase 指向錯誤路徑,或 web.xml 中 DefaultServlet 映射被覆蓋,會導致 HTML 無法載入。
<web-app>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.example.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern> <!-- 必須具體路徑,避免 /* 攔截靜態資源 -->
</servlet-mapping>
<welcome-file-list>
<welcome-file>Login.html</welcome-file>
</welcome-file-list>
</web-app>
在 Eclipse 的 Servers 視圖中雙擊 Tomcat,確認 Server Locations 選擇 Use Tomcat installation。專案右鍵 Properties → Deployment Assembly 確保 WebContent(或 src/main/webapp)映射到 /。
Clean → Clean Tomcat Work DirectoryMaven → Update Project(若為 Maven 專案)wtpwebapps 下舊版本,重新啟動伺服器按 F12 開啟開發者工具,切換到 Network 標籤,重新整理頁面,檢查 Login.html 的請求狀態碼(應為 200)及回應內容。若為 304,嘗試強制重新整理(Ctrl+F5)。
/login),避免使用 /* 導致靜態資源無法訪問WebContent 根目錄或 static 目錄下按上述步驟排查後,多數情況可解決「僅顯示 Servlet 結果、HTML 不顯示」的問題。若仍無效,請提供完整 web.xml、server.xml 及 Tomcat 日誌(catalina.out)進一步分析。