練習問題 解答

8.8 練習問題 解答

問1

① ○
② ×:データをURLの後ろに付けて送信するため、送信できるデータ量に制限があるのはGET送信です。
③ ×:POST送信はフォームからしか送ることができません。
④ ○
⑤ ×:出力用文字エンコーディングと送信データ用文字エンコーディングは別々に設定する必要があります。

問2

① post
② job
③ doPost
④ getParameter

問3

➢ practice0802.jsp
<%@page contentType= "text/html; charset=UTF-8" %>

<html>
	<head>
		<title>practice0802</title>
	</head>
	<body>
		<form action="<%= request.getContextPath() %>/Practice0802Servlet" method="post">
			あなたの職業はなんですか?<br>
			<input type="text" name="job">
			<input type="submit" value="送信">
		</form>
	</body>
</html>

➢ Practice0802Servlet.java
package ch08exercise;

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("/Practice0802Servlet")
public class Practice0802Servlet extends HttpServlet {
 	public void doGet(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
 
 		commonProcess(request, response);
 	}
 
 	public void doPost(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
 
 		commonProcess(request, response);
 	}
 
	//共通処理メソッド
 	private void commonProcess(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
 
 		String job = request.getParameter("job");
 		String message = null;
 
 		if(job == null){
 			message = "フォーム画面から入力してください";
 		}else if(job.equals("")){
 			message = "何も入力されていません";
 		}
 
 		PrintWriter out = response.getWriter();
 
 		if(message == null){
 			out.println("職業は" + job + "なのですね");
 		}else{
 			out.println(message);
 		}
	
 	}
 }

NEXT>> 第9章 サーブレットからJSPへ画面遷移