Spring Web Flow 2.0入门 - 什么情形下可以操纵Spring Web Flow[Java编程]
本文“Spring Web Flow 2.0入门 - 什么情形下可以操纵Spring Web Flow[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
前面讲了,Spring Web Flow 供应了描写业务流程的抽象本领,但对一种 Web 开辟技术而言,唯一这些是不够的.同时,Spring Web Flow 是不是可以代替其他 Web MVC 技术?大概在任何情形下都应优先利用 Spring Web Flow ?要答复这些问题,先来看一下 Spring Web Flow 所着力办理的技术问题.
Web 利用程序的三种范围
Java Servlet 标准为 Web 利用程序顶用到的各种对象规定了三种范围( scope ),辨别是 request 范围、 session 范围和 application 范围.
request 范围中的对象是跟客户的恳求绑定在一同的,每次恳求完毕城市销毁对象,而新的恳求过来时又会重新成立对象. request 范围合适存放数据量较大的暂时数据.
session 范围中的对象是跟会话( session )绑定在一同的,每次会话完毕会销毁这些对象,而新的会话中又会重新成立. HTTP 协议本身是无状况的,服务器和客户端要实现会话的管理,只能借助于一些帮助的手段,如在协议的数据包中加一些躲藏的暗号,等等. session 范围合适存放本次会话需求保存的数据.
application 范围的对象是跟利用程序本身绑定在一同,从 Servlet API 的角度来说,就是存放在 ServletContext 中的对象,它们随着 Servlet 的启动而成立,Servlet 关闭时才会销毁. application 范围合适存放那些与利用程序全局相关的数据.
实际开辟中最令人头痛的莫过于 session 范围,Java Servlet 标准指明可在 web.xml 中按以下方法配置 session 的有效时间为100分钟:
清单 2 web.xml 中 session 的配置
<session-config>
<session-timeout>100</session-timeout>
</session-config>
但是,实际中的 session 范围更像是“鸡肋”,把大量数据放入 session 会招致严重的效率问题,在分布式的环境中处理 session 范围更是一不当心就会出错,但丢弃 session 又会给开辟带来很多不便. request 范围虽说能存放量大的数据,但有效范围有限.摆在开辟者眼前的很多用例都要求一种比 request 范围要长,但又比 session 范围要短的这么一种有效范围.
Spring Web Flow 的办理筹划
针对 Java Servlet 标准中的这个缺陷,Spring Web Flow 2.0 中供应了以下两种范围:
flow 范围.此范围内的对象在 flow 开始时成立,flow 完毕时销毁,在 flow 定义文件中可通过“ flowScope ”变量名来拜候.
conversation 范围.此范围内的对象与 flow 范围对象基本类似,唯一差别在于 conversation 范围内的对象所在的 flow 假如调用了其他 subflow ,那么在 subflow 中也可拜候该对象.
备注:subflow 定义:被其他 flow 所调用的 flow 便可称为 subflow.
由于 flow 是由开辟人员自己定义的,可按照业务的需求安闲改变,flow 范围和 conversation 范围的利用也就冲破了 Java Servlet 标准中 session 范围和 request 范围的范围,真正做到了安闲定制.
以上是“Spring Web Flow 2.0入门 - 什么情形下可以操纵Spring Web Flow[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |