HttpServletRequest 自動解析 GET/POST,開發者無需區分:
getParameter(name):取得第一個值 (String),不存在回傳 null,無值回傳空字串。getParameterValues(name):取得所有值 (String[]),適用 checkbox、multi-select。getParameterNames():取得所有參數名稱 (Enumeration),適合除錯/通用處理。public class ThreeParams extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<h1>讀取三個請求參數</h1><ul>");
out.println("<li>param1: " + req.getParameter("param1") + "</li>");
out.println("<li>param2: " + req.getParameter("param2") + "</li>");
out.println("<li>param3: " + req.getParameter("param3") + "</li>");
out.println("</ul>");
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp); // 同樣處理 POST
}
}
public class ShowParameters extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<table border=1><tr><th>參數名稱</th><th>參數值</th></tr>");
Enumeration<String> names = req.getParameterNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
String[] values = req.getParameterValues(name);
out.print("<tr><td>" + name + "</td><td>");
if (values.length == 1 && values[0].isEmpty()) {
out.print("<i>No Value</i>");
} else if (values.length > 1) {
out.print("<ul>");
for (String v : values) out.print("<li>" + v + "</li>");
out.print("</ul>");
} else {
out.print(values[0]);
}
out.println("</td></tr>");
}
out.println("</table>");
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
<form action="/servlet/hall.ShowParameters" method="POST">
Item Number: <input type="text" name="itemNum"><br>
Quantity: <input type="text" name="quantity"><br>
Price: <input type="text" name="price" value="100"><br>
<hr>
First Name: <input type="text" name="firstName"><br>
Credit Card: <br>
<input type="radio" name="cardType" value="Visa"> Visa<br>
<input type="radio" name="cardType" value="Master"> Master Card<br>
Card Number: <input type="password" name="cardNum"><br>
<input type="submit" value="Submit">
</form>
request.getInputStream() 或 request.getReader() 讀取原始資料流。@MultipartConfig + request.getPart() 或 Commons FileUpload。