💨
【初心者向け/ITスクール49日】JSPでCookieとSessionを扱う方法
はじめに
今日は、ITスクールに通った49日目の日で、今日学んだ知識を記事にシェアしたいと思います。本記事が、ITを勉強を始めた方々にもロードマップになればいいと思います。
49日目は、CookieとSessionについて、勉強し、ログインシステムを作る実習をしました。
Cookie&Session
タイプ | 依存関係 | データータイプ | 所属 | スコープ | 呼び出すオブジェクト |
---|---|---|---|---|---|
Cookie | Model | String | Browser | 設定時間、もしくは直接削除するまで | response |
Session | Model | Object | Server(attribute) | 設定時間、もしくはブラウザーの終了まで | request |
cookie:${cookie.d.value }
session:${sessionScope.e }
ログイン時は、Sessionを活用し、Memberオブジェクトを生成することでログインシステムが成り立てることが分かりました。とても不思議でした。
String d = "500000";
Cookie ck = new Cookie("d", d);
ck.setMaxAge(15); //cookieの保存時間を15秒に設定
res.addCookie(ck); //response所属にadd(PCに保存)
HttpSession hs = req.getSession();
hs.setMaxInactiveInterval(15); //sessionの維持時間を15秒維持
hs.setAttribute("e", e); //session 所属のattribute
Login
Loginの場合、基本的にPOSTになりますので、requestからUTF-8にEncodingすることを忘れずにやってみましょう!
public static void login(HttpServletRequest req, HttpServletResponse res) {
try {
req.setCharacterEncoding("UTF-8");
String id = req.getParameter("id");
String pw = req.getParameter("pw");
//Cookieは保安上、危ないので、Sessionを活用します。
//Sessionでログインすれば、サイトのどこでも維持されます。
if(id.equals("help") && pw.equals("me")) {
Member m = new Member(id,pw);
req.getSession().setAttribute("m", m);
req.getSession().setMaxInactiveInterval(10);
}
Cookie c = new Cookie("lastLoginID",id);
c.setMaxAge(600);
res.addCookie(c);
}catch(Exception e) {
}
}
}
public static boolean loginCheck(HttpServletRequest req) {
Member m =(Member) req.getSession().getAttribute("m");
return(m != null);
}
SessionはObjectですので、ダウンキャストすることがポイントです!
Discussion