iT邦幫忙

2026 iThome 鐵人賽

DAY 0
0
JavaScript

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

Day 10|讓網頁和 Java 溝通:第一次接收表單資料

  • 分享至 

  • xImage
  •  

前言

昨天第一次建立了 Servlet,也成功讓瀏覽器和 Java 後端產生連線。

不過目前的 Servlet 只能自己回傳固定的文字。

真正的系統不可能只有這樣。

例如今天如果要新增一位病患,我希望使用者可以在網頁上輸入:

  • 姓名
  • 性別
  • 出生日期
  • 電話

按下「送出」之後,Java 後端就可以收到這些資料。

所以今天要做的事情就是:

讓 HTML 表單把資料傳送給 Servlet。

先建立一個病患資料表單

首先在 HTML 裡建立一個簡單的表單:

現在打開網頁,就會看到一個簡單的病患資料輸入表單。

這裡最重要的是:

form 就是 HTML 的表單。

action 決定資料要送到哪裡。

action="patient"

代表資料會送到 /patient。

而:

method="post"

則表示使用 HTTP POST 方法送出資料。

為什麼要使用 POST?

HTTP 有很多不同的方法,其中我們現在先認識兩個:

GET

通常用來取得資料。

例如:

查詢病患資料

POST

通常用來傳送資料。

例如:

新增病患
登入帳號
送出表單

所以今天的「新增病患資料」就很適合使用 POST。

Servlet 接收資料

接下來建立:

@WebServlet("/patient")
public class PatientServlet extends HttpServlet {
@Override
protected void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String birthday = request.getParameter("birthday");
String phone = request.getParameter("phone");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("收到病患資料!");
out.println("姓名:" + name + "");
out.println("性別:" + gender + "");
out.println("出生日期:" + birthday + "");
out.println("電話:" + phone + "");
}
}

這裡最重要的是:

request.getParameter("name");

它可以取得 HTML 表單裡:

name="name"

所輸入的資料。

name 為什麼這麼重要?

例如 HTML:

Java:

request.getParameter("name");

兩邊的 name 必須對得上。

可以把它想成一個對應關係:

HTML Java
name="name" → getParameter("name")
name="gender" → getParameter("gender")
name="birthday" → getParameter("birthday")
name="phone" → getParameter("phone")

如果兩邊名稱不一樣,Java 就拿不到正確的資料。

實際操作一次

現在可以在網頁上輸入:

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

按下「送出」。

流程就會變成:

使用者輸入資料

HTML Form

POST

PatientServlet

request.getParameter()

取得資料

最後 Servlet 就可以把收到的資料顯示出來。

現在距離資料庫還差什麼?

目前我們雖然已經可以讓 Java 收到病患資料,但這些資料還沒有真正被儲存。

也就是說:

使用者輸入

Servlet 收到

顯示資料

重新整理或離開頁面之後,資料就不會留下來。

我們真正想要的是:

使用者輸入

Servlet

MySQL

永久儲存資料

所以接下來就要開始進入資料庫的部分。

今天的小結

今天第一次讓 HTML 和 Java Servlet 真正開始溝通。

我學到可以利用 HTML 的 傳送資料,再透過 Servlet 的:

request.getParameter()

取得使用者輸入的內容。

目前資料還只是被 Servlet 接收到,還沒有存進資料庫。

下一步就要開始認識 MySQL,建立這次醫療資訊小系統真正用來儲存病患資料的資料表。

Day 10,完成!


上一篇
Day 9|第一次建立 Servlet:讓網頁開始和 Java 溝通
系列文
30天從零打造醫療資訊小系統7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言