jfinal restful
いつもjfinalの動態に注意して、sessionの問題@JFinalに関して restfulの返事です.今日はどんなデザインに問題があるのか分からないので、大神さんたちに指摘してもらいました.
ログインシステム、アクセスaction
Userテーブルデータベースフィールド
id username mail password cookie_id cookie_time
101 張三 kxf@ 123 101
loginSuccessにアクセスし、
loginSuccess.htmlは、セッションアクセスに相当する過去のクッキーを渡し、クッキーからクッキーを取得します.id取得データ101、データベースフィールドcookieを表示するidに101があるかどうか、ある場合cookie_time時間は30分を超えず、マッチングに成功し、このユーザーは現在有効です.
ここでこのクッキーを判断するtimeは面倒なので、グローバルブロッカーを作って、アクセスするたびに、期限が切れているかどうかを見て、期限が切れていない場合は、現在の時間を更新し、actionにジャンプすることができます.期限が切れた場合は、ログインページにジャンプします.
ログインシステム、アクセスaction
<form action="/user/loginSuccess" method="post">
<ul>
<li> :</li>
<li><input type = "text" name = "mail" value = "${mail!}">${mailMsg!}</li>
</ul>
<ul>
<li> :</li>
<li><input type = "password" name = "password" value = "${password!}">${passwordMsg!}</li>
</ul>
<input type = "submit" value = " ">
</form>
Userテーブルデータベースフィールド
id username mail password cookie_id cookie_time
101 張三 kxf@ 123 101
loginSuccessにアクセスし、
public void loginSuccess() throws UnsupportedEncodingException{
// :cookieId, User.ID
//cookieId session, Cookie cookieId
setCookie("cookieId", user.getStr(User.ID), 60 * 60 * 24 * 30); // cookie
// cookie
setCookie("username", URLEncoder.encode(user.getStr(User.USERNAME), "UTF-8"), 60 * 60 * 24 * 30);
// cookie_id ,
user.set(User.COOKIE_ID, user.getStr(User.ID))
.set(User.COOKIE_TIME, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
.update();
render("loginSuccess.html");
}
loginSuccess.htmlページ<script type="text/javascript">
$(function(){
$("#username").text($.cookie("username"));
});
</script>
:<a href="/user/personal"><span id = "username"></span></a>
Personalへのアクセス ActionloginSuccess.htmlは、セッションアクセスに相当する過去のクッキーを渡し、クッキーからクッキーを取得します.id取得データ101、データベースフィールドcookieを表示するidに101があるかどうか、ある場合cookie_time時間は30分を超えず、マッチングに成功し、このユーザーは現在有効です.
ここでこのクッキーを判断するtimeは面倒なので、グローバルブロッカーを作って、アクセスするたびに、期限が切れているかどうかを見て、期限が切れていない場合は、現在の時間を更新し、actionにジャンプすることができます.期限が切れた場合は、ログインページにジャンプします.