練習問題 解答
11.5 練習問題 解答
問1
① ×:リクエストスコープ内のデータは何度でも取得することができます。
② ×:リクエストスコープ内のデータは1リクエストの間有効なため、次のリクエストでは利用できません。
③ ○
④ ○
⑤ ×:既存のクラス以外に、自作したクラスのオブジェクトも登録することが可能です。
問2
➢ practice1101.jsp
1 | <%@page contentType= "text/html; charset=UTF-8" %> |
2 | <%@page import="java.net.*" %> |
6 | Cookie[] jobCookie = request.getCookies(); |
8 | for(int i = 0 ; i < jobCookie.length ; i++){ |
9 | if(jobCookie[i].getName().equals("job")){ |
10 | job = URLDecoder .decode(jobCookie[i].getValue(), "UTF-8"); |
14 | String message = (String)request.getAttribute("message"); |
21 | < title >practice1101</ title > |
24 | < form action="<%= request.getContextPath() %>/Practice1101Servlet" method="get"> |
26 | < input type = "text" name = "job" value=<%= job %>> |
27 | < input type = "submit" value = "送信" >< br > |
➢ Practice1101Servlet.java
6 | import javax.servlet.http.*; |
8 | public class Practice1101Servlet extends HttpServlet { |
10 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
11 | throws ServletException, IOException { |
13 | request.setCharacterEncoding("UTF-8"); |
14 | String job = request.getParameter("job"); |
15 | String message = null; |
18 | message = "フォーム画面から入力してください。"; |
19 | }else if(job.equals("")){ |
20 | message = "何も入力されていません。"; |
24 | String value = URLEncoder.encode(job, "UTF-8"); |
25 | Cookie jobCookie = new Cookie("job", value); |
26 | jobCookie.setMaxAge(60 * 60 * 12); |
27 | response.addCookie(jobCookie); |
29 | request.setAttribute("job", job); |
30 | request.getRequestDispatcher("/view/ch11exercise/practice1102.jsp").forward(request, response); |
32 | request.setAttribute("message", message); |
33 | request.getRequestDispatcher("/view/ch11exercise/practice1101.jsp").forward(request, response); |
➢ practice1102.jsp
1 | <%@page contentType= "text/html; charset=UTF-8" %> |
4 | String job = (String)request.getAttribute("job"); |
9 | < title >practice1102</ title > |
NEXT>> 第12章 セッションを利用しよう