練習問題 解答
10.5 練習問題 解答
問1
① ×:クッキーはWebサーバ上ではなくクライアント上にデータが保管されます。
② ○
③ ○
④ ×:有効期限を設定しない場合、ブラウザが閉じられるまで有効なデータとなる。
問2
➢ practice1001.jsp<%@page contentType= "text/html; charset=UTF-8" %> <%@page import="java.net.*" %> <% String job = ""; Cookie[] jobCookie = request.getCookies(); if(jobCookie != null){ for(int i = 0 ; i < jobCookie.length; i++){ if(jobCookie[i].getName().equals("job")){ job = URLDecoder.decode(jobCookie[i].getValue(), "UTF-8"); } } } %> <html> <head> <title>practice1001</title> </head> <body> <form action="<%= request.getContextPath() %>/Practice1001Servlet" method="get"> あなたの職業はなんですか?<br> <input type="text" name="job" value=<%= job %>> <input type="submit" value="送信"> </form> </body> </html>➢ Practice1001Servlet.java
package ch10exercise; import java.io.IOException; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet("/Practice1001Servlet") public class Practice1001Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String job = request.getParameter("job"); String message = null; if(job == null){ message = "フォーム画面から入力してください。"; }else if(job.equals("")){ message = "何も入力されていません。"; } if(message == null){ Cookie jobCookie = new Cookie("job", value); jobCookie.setMaxAge(60 * 60 * 12); response.addCookie(jobCookie); RequestDispatcher dispatcher = request.getRequestDispatcher("/view/ch10exercise/practice1002.jsp"); dispatcher.forward(request, response); }else{ RequestDispatcher dispatcher =request .getRequestDispatcher("/view/ch10exercise/practice1003.jsp?message="+message); dispatcher.forward(request, response); } } }