練習問題 解答
12.5 練習問題 解答
問1
① ○
② ○
③ ×:スコープから登録されていない名前のデータを取得すると、null値が返されます。
④ ×:セッションは任意に破棄することができます。
⑤ ×:ブラウザが閉じられたかどうかを正確に判断できないため、セッションタイムアウトによって削除されます。
問2
➢ practice1201.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 | job = (String)session.getAttribute("job"); |
19 | String message = (String)request.getAttribute("message"); |
26 | < title >practice1101</ title > |
29 | < form action="<%= request.getContextPath() %>/Practice1201Servlet" method="get"> |
31 | < input type = "text" name = "job" value=<%= job %>> |
32 | < input type = "submit" value = "送信" >< br > |
➢ Practice1201Servlet.java
6 | import javax.servlet.http.*; |
8 | public class Practice1201Servlet 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 | HttpSession session = request.getSession(); |
30 | session.setAttribute("job", job); |
31 | request.getRequestDispatcher("/view/ch12exercise/practice1202.jsp").forward(request, response); |
33 | request.setAttribute("message", message); |
34 | request.getRequestDispatcher("/view/ch12exercise/practice1201.jsp").forward(request, response); |
➢ practice1202.jsp
1 | <%@page contentType= "text/html; charset=UTF-8" %> |
4 | String job = (String)session.getAttribute("job"); |
9 | < title >practice1202</ title > |
12 | 職業は「<%= job %>」なのですね。< br > |
13 | < form action="<%= request.getContextPath() %>/view/ch12exercise/practice1201.jsp" method="get"> |
14 | < input type = "submit" value = "戻る" > |
NEXT>> 第13章 Webアプリケーションとデータベース