練習問題 解答
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); } } }