転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

【技術書メモ】基礎からのサーブレット③

HTMLのフォームに入力した内容を、サーブレットで取得する方法

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Servlet/JSP Samples</title>
</head>
<body>
<p>お名前を入力してください。</p>

<!-- action属性でフォームの送信先を指定 -->
<!-- method属性でHTTPリクエストをGETに指定 -->
<form action="greeting" method="get">

<!-- name属性をuserに指定したテキストボックス -->
<input type="text" name="user">

<!-- 確定ボタン -->
<input type="submit" value="確定">

</body>
</html>
@WebServlet(urlPatterns={"/chapter5/greeting"})
public class Greeting extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		// コンテンツタイプの指定
		resp.setContentType("text/html; charset=UTF-8");

		// 文字エンコーディングの指定
		req.setCharacterEncoding("UTF-8");
		// name属性の値「user」を取得
		String user = req.getParameter("user");

		// PrintWriterオブジェクトの取得
		PrintWriter pw = resp.getWriter();

		Page.header(pw);

		pw.println("<p>こんにちわ、" + user + "さん!</p>");

		Page.footer(pw);

	}
}

GETリクエストの特徴

URLの末尾に、リクエストパラメータが付加される。(?name属性=値)

また、HTMLの置き場所は、以下の通り。
f:id:uuc1h:20181125142023p:plain

POSTリクエストの特徴

送信したデータが、ユーザーからは見えにくくなる。
なお、POSTリクエストの場合は、doGetメソッドではなく、doPostメソッドを使用すること。