練習問題 解答
8.8 練習問題 解答
問1
① ○
② ×:データをURLの後ろに付けて送信するため、送信できるデータ量に制限があるのはGET送信です。
③ ×:POST送信はフォームからしか送ることができません。
④ ○
⑤ ×:出力用文字エンコーディングと送信データ用文字エンコーディングは別々に設定する必要があります。
問2
① post
② job
③ doPost
④ setCharacterEncoding
⑤ getParameter
問3
➢ practice0802.jsp
1 | <%@page contentType= "text/html; charset=UTF-8" %> |
5 | < title >practice0802</ title > |
8 | < form action="<%= request.getContextPath() %>/Practice0802Servlet" method="post"> |
10 | < input type = "text" name = "job" > |
11 | < input type = "submit" value = "送信" > |
➢ Practice0802Servlet.java
6 | import javax.servlet.http.*; |
8 | public class Practice0802Servlet extends HttpServlet { |
10 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
11 | throws ServletException, IOException { |
13 | commonProcess(request, response); |
16 | public void doPost(HttpServletRequest request, HttpServletResponse response) |
17 | throws ServletException, IOException { |
19 | commonProcess(request, response); |
22 | private void commonProcess(HttpServletRequest request, HttpServletResponse response) |
23 | throws ServletException, IOException { |
25 | request.setCharacterEncoding("UTF-8"); |
26 | String job = request.getParameter("job"); |
27 | String message = null; |
30 | message = "フォーム画面から入力してください"; |
31 | }else if(job.equals("")){ |
32 | message = "何も入力されていません"; |
35 | response.setContentType("text/html; charset=UTF-8"); |
36 | PrintWriter out = response.getWriter(); |
39 | out.println("職業は" + job + "なのですね"); |
➢ web.xml
2 | < servlet-name >Practice0802ServletMapping</ servlet-name > |
3 | < servlet-class >ch08exercise.Practice0802Servlet</ servlet-class > |
6 | < servlet-name >Practice0802ServletMapping</ servlet-name > |
7 | < url-pattern >/Practice0802Servlet</ url-pattern > |
NEXT>> 第9章 サーブレットからJSPへ画面遷移