文档章节

jfinal restful

kxf327
 kxf327
发布于 2013/11/07 11:34
字数 422
阅读 597
收藏 3

    经常留意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: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    action(时间不早了,这块还没实现,就打字了)

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

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

© 著作权归作者所有

kxf327
粉丝 5
博文 5
码字总数 625
作品 0
海淀
高级程序员
私信 提问
加载中

评论(1)

Dreampie
Dreampie
推荐极简restful+activerecord框架,比这个更简单 http://www.oschina.net/p/resty,代码量更少,核心代码只有190k左右,非常小而且轻量级,没有入门难度
jfinal 实现restful API

@jfinal 你好。我现在要用jfinal开发一套restful API有几点问题。 1.我开发restful API的时候和使用jfinal开发普通的Web应用配置是一样的吧?(不需要加入自己实现的RestfulHandler之类的吧?...

红薯苗
2013/10/30
9.5K
6
jfinal对restful的支持

@JFinal 你好,想跟你请教个问题: 用表单提交时如何使用restful?还是说表单本来就是和restful相悖的?比如我现在要查询一篇博客“http://www.oschina.net/question/ask?project=JFinal&us...

MR猪
2012/12/19
4.2K
7
关于Restful如何使用

@JFinal 你好,想跟你请教个问题: 使用jfinal的restful过滤器,是不是在我的controller上加@Before(Restful.class)???还有我前台URL有啥要求啊,小弟初学jfinal,比较愚钝,还请大神们指教...

foreverglow
2014/08/08
1K
3
关于JFinal对Restful的支持

首先很感谢作者写出来的这个框架,用起来很爽,没有spring那种繁琐的感觉。 我对比了一下Apache Wink和JFinal(我仅在restful方面作对比),发现JFinal在restful这方面的支持好像还不是很好(...

ODMark
2014/03/04
459
1
JFinal实现Restful的Delete方法和Put方法

@JFinal ,你好,在OSCchina上也看了不少关于JFinal实现Restful风格的帖子,JFinal自带的Restful拦截器是太生硬了,而且当前浏览器对PUT 和Delete方法的支持不好,看到有的人说用put和post来...

网瘾少年林俊杰
2015/04/21
2.6K
2

没有更多内容

加载失败,请刷新页面

加载更多

Netty整合Protobuffer

现在我们都知道,rpc的三要素:IO模型,线程模型,然后就是数据交互模型,即我们说的序列化和反序列化,现在我们来看一下压缩比率最大的二进制序列化方式——Protobuffer,而且该方式是可以跨...

算法之名
26分钟前
16
0
如何用C++实现栈

栈的定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压...

BWH_Steven
45分钟前
5
0
编程作业20190210900169

1编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include <stdio.h>#include <stdlib.h> int main(){ char firstName[20]; char lastName[20]; print......

1李嘉焘1
57分钟前
12
0
补码的优点及原理分析

只讨论整数 1.计算机内部为什么没有减法器? 减法运算本身其实就是加法,如x - y即x +(-y),所以只需要将负数成功表示出来并可以参加加法运算,那加法器就可同时实现“+”和“-”的运算。这...

清自以敬
今天
76
0
Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部