使用AFinal框架开发app是比较高效的,但是在访问服务器的
时候,我们希望用户在登录成功之后就给用户一个sessinid,只要会话没关闭的情况下,不在生成新的sessinid。
对于web开发的朋友来说,session 和cookie的妙用自然不用多说了。
Cookie和Session有以下明显的不同点:
1)Cookie将状态保存在客户端,Session将状态保存在服务器端;
2)Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies。
3)Session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是不同用户session变量,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie时,这个值也可能设置为由get来返回给服务器;
4)就安全性来说:当你访问一个使用session 的站点,同时在自己机器上建立一个cookie,建议在服务器端的SESSION机制更安全些.因为它不会任意读取客户存储的信息。
Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。
Session的实现方式
1 ) 使用Cookie来实现
服务器给每个Session分配一个唯一的JSESSIONID,并通过Cookie发送给客户端。
当客户端发起新的请求的时候,将在Cookie头中携带这个JSESSIONID。这样服务器能够找到这个客户端对应的Session。
2 )使用URL回显来实现
URL回写是指服务器在发送给浏览器页面的所有链接中都携带JSESSIONID的参数,这样客户端点击任何一个链接都会把JSESSIONID带给服务器。
如果直接在浏览器中输入url来请求资源,Session是匹配不到的。
Tomcat对 Session的实现,是一开始同时使用Cookie和URL回写机制,如果发现客户端支持Cookie,就继续使用Cookie,停止使用URL回写。如果发现Cookie被禁用,就一直使用URL回写。jsp开发处理到Session的时候,对页面中的链接记得使用 response.encodeURL() 。
AFinal中,对于请求都是采用FinalHttp ,如果要在http请求中加入请求头,进行sessionid的验证,我们可以采用下面的方式
FinalHttp fh = new FinalHttp();
fh.addHeader("Cookie", "JSESSIONID="+JSESSIONID ); //把sessionid做成一个静态变量
我们该怎样重服务器返回的json,或者登陆成功之后的会话状态呢?以下方法:
DefaultHttpClient client = (DefaultHttpClient) fh
.gethttp().getHttpClient();
List<Cookie> list = client.getCookieStore().getCookies();
if (list.isEmpty()) {
// Logger.i("Cookie", "is null");
} else {
for (Cookie cookie : list) {
JSESSIONID=cookie.getValue();
}
分享到:
相关推荐
这个“afinal demo afinal框架demo”是为开发者提供了一个学习和实践Afinal框架的示例项目,帮助大家快速理解和应用Afinal到实际的Android开发中。下面将详细讲解Afinal框架及其在Android开发中的应用。 Afinal的...
总的来说,Volley.jar和Afinal框架都是Android开发中的得力助手,它们各自的特点和优势使得在不同的项目场景中都能发挥重要作用。通过理解和掌握这两个框架,开发者能够更好地应对各种开发挑战,提高代码质量和开发...
在提供的`AfianlText`文件中,应该包含了关于如何使用Afinal的详细教程和示例代码,这对于学习和理解Afinal的具体用法非常有帮助。通过阅读和实践这些内容,你将能够熟练掌握Afinal框架的核心功能。
这个Demo项目是学习和理解Afinal框架的好材料,通过运行和分析代码,你可以深入理解如何在Android应用中有效地管理和操作SQLite数据库。在实际开发中,结合Afinal提供的缓存机制和异步操作,可以进一步提升数据操作...
在Afinal中,数据库操作被封装成易于使用的API,使得开发者可以通过简洁的代码来完成复杂的数据库交互。 **1. Afinal的核心特性** 1. **简单易用**:Afinal提供了简单的API接口,如SQL语句的执行、增删改查等操作...
1. **FinalDB**:这是Afinal中的数据库管理模块,它基于ActiveAndroid进行优化,提供了简单易用的ORM(对象关系映射)功能。FinalDB使得开发者可以通过简单的注解方式将Java对象与SQLite数据库表进行绑定,极大地...
Android Afinal框架是一款轻量级的数据库操作库,由陈国良(FinalTeam)开发,主要目的是简化Android中的SQLite数据库操作。Afinal不仅提供了数据库的CRUD(创建、读取、更新、删除)操作,还支持了网络请求、文件...
afinal框架下载
【Android Afinal 框架在记事本项目中的应用】 在移动开发领域,尤其是在Android平台上,数据库操作是常见的需求之一。Afinal是一款轻量级的Android ORM(对象关系映射)框架,它使得开发者可以更方便、高效地进行...
在Android开发中,图片加载是常见的任务,尤其是在处理大量图片数据时,如在滚动列表或者网格...在实际应用中,开发者还可以根据需求对Afinal进行定制,例如设置图片的加载策略、缓存大小等,以适应不同场景下的需求。
**Afinal框架DB部分Demo详解** Afinal是一个轻量级的Java ORM(对象关系映射)框架,它基于Spring JDBC,旨在简化数据库操作,提供一套简单易用的API,使得开发者能够更专注于业务逻辑,而不是繁琐的SQL和JDBC代码...
这个"afinal框架实现图片的简单异步缓存加载"项目,为我们提供了一个深入了解和实践这一功能的机会,通过对源码的学习,我们可以更深入地理解Afinal的内部机制,并将其运用到自己的项目中,优化图片处理流程。
`afinal`框架就是一个这样的解决方案,它提供了一个简单易用的API来处理图片的异步加载和缓存。`afinal`由陈勇(yongchun)开发,是一个轻量级的Android ORM框架,同时也包含了网络请求和图片加载的功能。 首先,让...
Afinal是一款专为Android平台设计的轻量级开源框架,它主要专注于简化Android应用中的数据库操作、网络请求以及文件管理。这个框架由他人开发并在持续更新和完善中,提供了丰富的功能和易用性,帮助开发者提高工作...
本资源提供了使用afinal框架实现图片的简单异步缓存加载的源码,帮助开发者深入理解afinal框架在实际项目中的应用。 Afinal是一个轻量级的Android开发框架,由知数科技的陈思创建,它整合了I/O操作、数据库ORM...
AFinal是一款轻量级的Android开发框架,由iCode团队创建,主要目的是简化Android中的数据库操作和网络请求。它的核心设计理念是简洁、易用,帮助开发者快速开发项目。本示例将详细介绍如何在Android应用中使用AFinal...
Android开发中,Afinal是一个非常受欢迎的轻量级的开源框架,由iyilun开发,主要目的是简化Android中的网络请求和数据库操作。本压缩包"Android代码-afinal开源框架实例源码.zip"包含了Afinal框架的具体应用示例,...
1、afinal是android中一个设计小巧的android应用开发框架 2、里面包含了一个orm框架,无需配置任何文件可以对android的sqlite进行增删改查操作。 3、里面包含了一个ioc框架,自动绑定android布局文件和代码的控件...
1. **集成Afinal框架**:首先,你需要在项目中添加Afinal的依赖。这通常通过Gradle配置完成,添加对应的依赖库到build.gradle文件中,然后执行构建命令,使依赖生效。 2. **配置Afinal**:在应用初始化时,你需要...