iT邦幫忙

2026 iThome 鐵人賽

DAY 0
0
JavaScript

30天從零打造醫療資訊小系統系列 第 6

Day 9|第一次建立 Servlet:讓網頁開始和 Java 溝通

  • 分享至 

  • xImage
  •  

前言

前幾天我們先從 HTML、CSS 和 JavaScript 開始,慢慢建立醫療資訊小系統的前端。

到目前為止,網頁已經可以顯示內容,也可以透過 JavaScript 增加一些互動。

但是現在還有一個問題:

這些資料都還只是存在網頁上。

如果希望之後可以把病患資料儲存到資料庫,就需要一個可以處理資料的後端。

所以今天開始,我要正式進入 Java Web 的部分。

今天的主角就是:

Servlet。

Servlet 是什麼?

Servlet 是 Java Web 中用來處理網路請求的一種技術。

簡單來說,當使用者在網頁上做了一個動作,例如:

  • 按下登入
  • 送出表單
  • 查詢病患資料
  • 新增一筆資料

瀏覽器會把請求送到後端,而 Servlet 就可以負責接收並處理這些請求。

可以先把它想成:

使用者

瀏覽器

Servlet

Java 程式

回傳結果

這樣就可以讓前端網頁和後端 Java 程式開始溝通。

建立第一個 Servlet

今天先做一個非常簡單的 Servlet。

例如建立:

HelloServlet.java

基本程式可以寫成:

import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("Hello, Medical System!");
out.println("我的第一個 Servlet 成功執行了!");
}
}

第一次看到可能會覺得程式碼有點多。

但今天先不用全部背起來。

我們先理解最重要的幾個部分。

@WebServlet 是什麼?

@WebServlet("/hello")

這一行可以理解成:

當使用者進入 /hello 時,要交給這個 Servlet 處理。

例如網站網址假設是:

http://localhost:8080/MedicalSystem/hello

瀏覽器就會找到我們剛剛建立的 HelloServlet。

doGet() 是什麼?

protected void doGet(...)

這個方法主要用來處理 HTTP GET 請求。

例如我們直接在瀏覽器輸入網址:

/hello

就可以觸發這個 Servlet 的 doGet()。

之後還會學到另一個很重要的方法:

doPost()

它通常會用來處理表單送出的 POST 請求。

這兩個方法之後會在我們的醫療資訊系統裡一直使用到。

讓 Servlet 回傳資料

在程式裡:

PrintWriter out = response.getWriter();

可以取得輸出的工具。

接著:

out.println("Hello, Medical System!");

就可以把 HTML 內容回傳給瀏覽器。

所以當我們開啟 Servlet 的網址時,就可以看到:

Hello, Medical System!
我的第一個 Servlet 成功執行了!

這代表:

瀏覽器 → Servlet → Java → 瀏覽器

這條路已經成功跑起來了。

Servlet 和我們的醫療系統有什麼關係?

現在可能會覺得:

「只是顯示 Hello,有什麼用?」

其實這只是第一步。

之後我們會把它變成:

病患資料表單

Servlet

Java 處理資料

MySQL

儲存病患資料

例如使用者填寫:

姓名:王小明
性別:男
出生日期:2005/01/01
電話:0912345678

按下「新增」之後,資料就會送到 Servlet。

Servlet 再把資料交給後端程式處理。

最後再寫入 MySQL。

這才是我們真正想完成的功能。

今天遇到的第一個問題

開始接觸 Java Web 後,我發現它和單純寫 HTML、CSS、JavaScript 有很大的不同。

以前只要把 .html 檔案打開,就可以看到網頁。

但是 Servlet 並不是直接點兩下 Java 檔案就能執行。

它需要透過 Web Server,例如 Tomcat,來接收瀏覽器的請求。

所以整個流程會變成:

瀏覽器

Tomcat

Servlet

Java

這也是為什麼前面在準備開發環境時,需要先把 Tomcat 準備好。

今天的小結

今天正式跨進 Java Web 的世界。

第一次建立 Servlet,雖然目前只讓它顯示一段簡單的文字,但也代表我們的系統開始有了「後端」。

目前我們已經慢慢建立起:

HTML

CSS

JavaScript

Java Servlet

接下來,我會開始讓前端網頁真正把資料傳給 Servlet。

下一篇就會來試試看:

如何讓 HTML 表單把使用者輸入的資料送到 Java 後端?

這樣距離真正的病患資料管理功能就更近一步了。

Day 9,完成!


上一篇
Day 5|讓醫療資訊系統變好看:第一次使用 CSS
系列文
30天從零打造醫療資訊小系統6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言