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