実現したいこと
Cookieを取得し、前回選択したプルダウンの選択肢と同じものを自動で選択する。
前提
javaを使ってCookieを利用するサンプルシステムを作っています。
jspとjavaを使いたいです。
文字列としてのcookieの設定や取得はうまくできているみたいなのですが、これでどうやったらプルダウンの選択肢をセットできるのかわからなくて困っています。
素人質問で申し訳ないです。
またcookieが取れているか確認するところで止まっているので、根本的に違う指定をしているところもあります。ご容赦ください。
該当のソースコード
jsp
1送信フォーム.JSP 2. 3. 4<% 5 String value = cookieTest.getCookie(request, "cookie_name"); 6if(value == null) { 7 cookieTest.setCookie(request, response, "name", "cookie_value"); 8. 9<form action="URL" method="post"> 10<h2>申請</h2> 11<h5>時間</h5> 12 <select name="timeframe" id="time"> 13 <option value="1">朝</option> 14 <option value="2">昼</option> 15 <option value="3">夜</option> 16</section> 17<br> 18 19<button>送信</button>
java
1 2public static void setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value){ 3 Cookie cookie =new Cookie(name, value); 4 cookie.setMaxAge(60*3); 5 response.addCookie(cookie); 6} 7 8publix static String getCookie(HttpServletRequest request, String name){ 9 String timeframe = null; 10 Cookie[] cookies = request.getCookie(); 11 if(cookies != null){ 12 for(int i=0; i<cookies.length; i++) { 13 if(cookies.[i].getName().equals("timeframe")) { 14 timeframe = cookies[i].getValue(); 15 16 break; 17 } 18 } 19 } 20 } 21 return timeframe; 22 } 23}
forward.java
1. 2. 3. 4 5public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcepton { 6 7 request.setCharacterEncoding("UTF-8"); 8 String timeframe = request.getParameter("time"); 9 HttpSession session1 =request.getSession(true); 10 session.setAtrtribute("timeframe", timeframe); 11 12 Requestdispatcher rd = request.getRequestDispatcher(次のPASS); 13 rd.forward(request,response); 14 } 15}
forwardのソースが関係あるか不明だったので乗せています。
これをJSPのselectの内容をcookieに保存して取得するように変更したいです。
###調査したこと・試したこと
cookieの利用方法については一通り調べてあります。また${_Cookie}で取り出せるというのはわかってはいます。
現状、<%@ %>で文字を出力することでcookieのセットができていることは確認しています。(今回はcookie_valueの文字が出力)
別のシステムを触った際はループの中にプルダウンの選択関係のソースを書き込んで、1行ごとに確認、またボタンの操作ごとに持ってくる内容を変更していました。ほぼ同じことをやればいいと思うのですが、この時はcookieに保存していたわけではないです。
ブラウザ上の←ボタンで戻った際はページの遷移だけなのでさっきの選択が残っていますが、更新ボタンを押したり、遷移後ページ下の「戻る」ボタンで戻った際は1番上の設定である「朝」が選択されています。
また時間設定を3分間にしていますが、これは問題なく動いており、3分経過すると出力したcookieに保存されている文字は初期設定のnullに戻ります。
プルダウンの内容パラメーターとしてそれを設定出来たら解決すると考えているのですが…。
