jfinal中使用restful

kxf327 发布于 2013/11/07 13:11
阅读 1K+
收藏 1

    经常留意jfinal的动态,有关session的问题 @JFinal 都是restful的回复。今天就试着弄了下,不知道哪些设计上有问题,还望大神们指出。

    登录系统,访问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🇲🇲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    action(这块还没实现,就打字了) 

    loginSuccess.html会传递cookie过去,相当于session会话访问,从cookie中获取cookie_id得到数据101,查看数据库字段cookie_id中是否有101,如果有,且cookie_time时间没有超过半小时,匹配成功,这个用户当前有效。

    做到这儿判断这个cookie_time 太麻烦了,可以弄个全局拦截器,每次访问,先看看是否过期,如果没有过期,更新当前时间,并跳转到action中;如果过期,跳转到登录页面

    大家评论下这样做当否?

加载中
0
菜根乱谭
菜根乱谭
不明白在说什么
0
backtract
backtract
说了半天都是在说会话 cookie 的问题 跟jfinal有毛关系 
kxf327
kxf327
JFinal的作者总是提到这个系统要去session
backtract
backtract
回复 @kxf327 : 为什么要去session?感觉你这样过于麻烦了。
kxf327
kxf327
你好,去session,我也只能想到这些了,如果用上restful那些规范太麻烦了,想知道大家是怎么弄的
0
JFinal
JFinal
可以看看这个: http://www.oschina.net/question/1985925_233144
返回顶部
顶部