練習問題 解答

8.8 練習問題 解答

問1

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

問2

① post
② job
③ doPost
④ getParameter

問3

➢ practice0802.jsp
1<%@page contentType= "text/html; charset=UTF-8" %>
2 
3<html>
4    <head>
5        <title>practice0802</title>
6    </head>
7    <body>
8        <form action="<%= request.getContextPath() %>/Practice0802Servlet" method="post">
9            あなたの職業はなんですか?<br>
10            <input type="text" name="job">
11            <input type="submit" value="送信">
12        </form>
13    </body>
14</html>
➢ Practice0802Servlet.java
1package ch08exercise;
2 
3import java.io.IOException;
4import java.io.PrintWriter;
5 
6import jakarta.servlet.ServletException;
7import jakarta.servlet.annotation.WebServlet;
8import jakarta.servlet.http.HttpServlet;
9import jakarta.servlet.http.HttpServletRequest;
10import jakarta.servlet.http.HttpServletResponse;
11 
12@WebServlet("/Practice0802Servlet")
13public class Practice0802Servlet extends HttpServlet {
14    public void doGet(HttpServletRequest request, HttpServletResponse response)
15            throws ServletException, IOException {
16  
17        commonProcess(request, response);
18    }
19  
20    public void doPost(HttpServletRequest request, HttpServletResponse response)
21            throws ServletException, IOException {
22  
23        commonProcess(request, response);
24    }
25  
26    //共通処理メソッド
27    private void commonProcess(HttpServletRequest request, HttpServletResponse response)
28            throws ServletException, IOException {
29  
30        String job = request.getParameter("job");
31        String message = null;
32  
33        if(job == null){
34            message = "フォーム画面から入力してください";
35        }else if(job.equals("")){
36            message = "何も入力されていません";
37        }
38  
39        PrintWriter out = response.getWriter();
40  
41        if(message == null){
42            out.println("職業は" + job + "なのですね");
43        }else{
44            out.println(message);
45        }
46     
47    }
48 }

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

f