Java Servlet 並不屬於 Java SE(Standard Edition),它是一種擴充套件,稱為 Jakarta EE,專門用於處理 Web 應用相關的需求。要使用 Servlet 功能,必須透過支援 Java EE 的 Web 容器,例如 Tomcat、Jetty 或 GlassFish,這些容器會內建提供所需的 Servlet API。
若不使用這些容器,也可以手動引入相應的 JAR 檔(如 jakarta.servlet-api.jar),即可在專案中使用 Servlet 技術。
PHP、Python Web、Java Web
php
在 PHP 的網頁開發中,除了可撰寫純 .html 的靜態頁面外,也常使用 .php 副檔名來建立動態網頁。.php 檔案會由 PHP 伺服器解析並執行內部的程式碼,最後輸出成 HTML 格式,傳送至用戶端瀏覽器顯示。 .php 檔案本質上是 HTML 文件中嵌入 PHP 程式碼的結合體。PHP 程式區塊通常以 <?php …. ?> 作為標記,用來分隔 HTML 與 PHP 程式碼。PHP 的語法與 C 語言相似,這種將程式邏輯與畫面結合的寫法,在大型專案中可能會導致程式碼結構混亂,維護上較為困難。
Python Web
在 Python 的 Web 框架中,Django 是目前較為普及的套件。Django 不是 Web Server,它只是一個框架。可以讓開發者能以純 Python 撰寫後端邏輯、模板以及靜態 HTML 頁面。
Python Web 是目前超流行的框架,因為有關 AI 的應用都是以 Python 開發。所以要製作有關 AI 的網站,Python Web 是最佳選擇。
Java Web
在 Java Web 開發中,常見的做法是使用 Tomcat 作為 Web Server,再透過 Servlet 技術撰寫純 Java 的後端程式碼。JSP(JavaServer Pages)則是一種嵌入於 HTML 中的語法,用來與後端進行資料交換與畫面呈現,其概念類似於 Python 的模板引擎。 早期 JSP 曾被視為有潛力取代 PHP 的技術,因為它同時具備動態內容與 Java 的穩定性。然而,隨著專案規模增長,JSP 的頁面往往容易變得雜亂,將商業邏輯與畫面混在一起,導致程式碼難以維護。因此在後來的開發實務中,越來越多開發者轉向使用 Servlet 或其他更具架構化的 MVC 框架,如 Spring MVC,以達到更好的模組分離與可維護性。
gradle專案
開發 Java Web 的首選 IDE 以 NetBeans 為主,因為 Intellij Idea 需要 Profession 付費版才支援 Java Web。
開啟新專案
由 File/New Project,選取 Java with Gradle/Web Application

指定 Location 後,填入專案名稱 tomcat,然後把 Package Name Base 刪除

接著在 Server 按下 Add,選取 Apache Tomcat or TomEE

Server Location 選擇 C:\Program Files\Apache Software Foundation\Tomcat 11.0,Username/Password 填入 Tomcat 安裝時的帳號及密碼。

最後會回到上二圖,其中 Context Path 一定為 /xxx,不可以為 「/」或空格,因為 「/」已被系統 Tomcat 佔用了。
build.gradle 設定
build.gradle 需設定如下
🔒 更多內容,請登入會員繼續閱讀。
立即登入相關目錄
使用 gradle 建立專案後,會在專案下產生如下目錄
src/main/java : Servlet 及 自訂 sdk 的位置
src/main/webapp : 靜態網頁(static)、圖片(pictures)、template 存放位置
build/exploded/xxx.war : Shift + F11 後網頁發佈位置,也是 Tomcat docBase 要指定的位置。
Ant 新專案
開啟新專案
由 File/New Project,選取 Java with Ant/java/Web,右邊 Project 選取 Web Appliction。

接下來輸入 Project Name

專案目錄
專案開啟後,如下目錄請熟記。
build : Clean and Build 後網頁所發佈的位置,亦是 Tomcat 的網頁根目錄。
dist : 編譯後 .war 所在位置。
src : Servlet 的位置
web : 模板、static(靜態網頁)、jsp 所在的位置。todo
網頁根目錄
此時網頁根目錄還未產生,需執行 Run/Clean and Build,或按 Shift+F11,才會在專案下產生 build\web 目錄,build\web 就是網頁根目錄。
接下開啟 C:\Program Files\Apache Software Foundation\Tomcat 11.0\conf\server.xml,將 docBase 改成如下。
<Context path="/" docBase="E:/server/mahalrtc/build/web" debug="0" reloadable="true"/>
重啟 Tomcat 後,在瀏覽器輸入 http://localhost 即可看到第一個網頁。
設定首頁
在 C:\Program Files\Apache Software Foundation\Tomcat 11.0\conf\web.xml 已預設三個首頁,分別是 index.html、index.htm、index.jsp。如果要使用 /index 為首頁,則需修改 web.xml 成如下。
<welcome-file-list>
<welcome-file>index</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
上述的 index 不可以寫成 /index 。修改完後記得重新啟動 Tomcat。
新增 Servlet
專案一開始會幫我們設定一個純 html 的 index.html。
如果想要使用 Servlet 製作網頁,請在 Source Packages 按右鍵/new Servlet,Class Name 輸入 index,Package 輸入自已的網域,比如 net.ddns.mahaljsp。
在 Configure Servlet Deployment 的 Add information to deployment desciptor(web.xml) 不需要打勾, URL Patten 請依預設的「/index」,然後按下 Shift + F11 進行編譯。
最後重啟 Tomcat 即可在瀏覽器 http://localhost:8085/index 看到網頁。請注意,只要新增 Servlet 就一定要重啟 Tomcat。
新增 Java Class
資深開發人員幾乎不會使用 new Servlet,而是直接 new java Class,然後手動輸入如下。
🔒 更多內容,請登入會員繼續閱讀。
立即登入MySQL 連線
JDBC 驅動
請先到 MySQL 官網 https://dev.mysql.com/downloads/connector/j/ 下載最新版本的驅動程式,Operating System 請選取 Platform Independent,然後再選取 zip 檔。

下載完成後請將 zip 檔解開,在 NetBeans 的 Libraries 按右鍵 Add JAR/Folder,然後選定 mysql-connector-j-8.4.0.jar,當執行編譯時,此 .jar 會自動複製到專案下的 build\web\WEB-INF\lib 之下。
WEB-INF\lib 日後會手動複製到 Tomcat docBase 目錄下,所以不需要再複製到系統級的 C:\Program Files\Apache Software Foundation\Tomcat 11.0\lib。但如果是在 JSP 網頁使用資料庫連線,還是需要手動複製一份到 Tomcat 11.0\lib。
Gradle
若使用 gradle 開啟新專案,請在 build.gradle 的 dependencies 新增如下設定,即可自動下載 JDBC 驅動程式。
🔒 更多內容,請登入會員繼續閱讀。
立即登入Servlet 網頁
撰寫 Servlet 網頁時,有幾個坑要避開。
手動輸入 java.sql
NetBeans 有 Bug,需手動在程式碼中輸入如下
import java.sql.*
載入驅動程式
Java 6 開始不用手動載入驅動程式,但在 Servlet 還是需要手動載入驅動程式,否則會出現如下錯誤
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/xxxx(資料庫)
手動載入驅動程式如下所示。
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch (ClassNotFoundException ex){
out.println(ex.toString());
}
完整代碼
請新增一個 Servlet 網頁,輸入如下完整的代碼
🔒 更多內容,請登入會員繼續閱讀。
立即登入JSP網頁
底下是使用 jsp 網頁的寫法。
🔒 更多內容,請登入會員繼續閱讀。
立即登入會員登入系統
Servlet 的運作方式如果用文字描述,一大篇文章也寫不完,直接實作會員登入系統看程式碼是最為快速的方法。
會員登入系統分為登入表單 (login.jsp),登入處理程式 (login.java),即登入成功畫面 (welcome.jsp)。
login.jsp
首先在專案按右鍵/New/JSP,File Name 輸入 login,完整代碼如下。
🔒 更多內容,請登入會員繼續閱讀。
立即登入Login.java
在專案下按「右鍵/New/Servlet」,Class Name 輸入 login,完整代碼如下。
🔒 更多內容,請登入會員繼續閱讀。
立即登入welcome.jsp
因為上述 login.java 如果登入成功會自動轉跳 welcome.jsp,所以就隨意寫個測試程式,代碼如下
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>歡迎光臨</h1>
</body>
</html>
