暑期项目经验(九) -- request session application
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了暑期项目经验(九) -- request session application,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2314字,纯文字阅读大概需要4分钟。
内容图文
request、session、application
一、基础知识
可以看看 浅谈:request,session,application (http://blog.csdn.net/hzc543806053/article/details/7416007)
要点:
作用域: request<session<application
共同方法:都可以使用 setAttribute(String name , Object o ) ,getAttribute(String name)
二、在java中获取这三个对象
可以看以下原文 :http://www.blogjava.net/xcp/archive/2009/10/23/struts2_actioncontext1.html?opt=admin
2.1 struts2封装后的三个Map (使用ActionContext)
import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; ........ ActionContext context = ActionContext.getContext(); Map request = (Map) context.get("request"); Map session = context.getSession(); Map application = context.getApplication();
2.2 与Servlet API耦合的访问方式(非IoC方式,使用ServletActionContext)
HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); HttpSession session = ServletActionContext.getRequest().getSession();
三、ActionContext和ServletActionContext的区别
我们知道struts2接受客户端请求,在Action中进行处理后,将视图结果返回。struts2容器自身不依赖于web容器,不用和servlet对象中的请求(request)、响应(response)进行关联,对于请求的参数,通过paramerInterceptor将参数封装在Action中,然后通过调用get、set方法将参数值设置进Action之中。如果仅仅获取参数,可能有时候满足不了开发的需求,有时我们要获取request或者response中的信息,要对其进行设置、处理。
3.1 ActionContext
是Action执行的上下文,Action的上下文可以看作是一个容器,里面封装了请求(Request)、会话(Session)、 Application等,这里面的Request、Session、Application是Map类型的,往里面封装的是键值对,所以这就体现了 struts2不与底层servlet Api打交道,那么对很多web的相关对象进行封装,这样可以达到Action与web层解耦。
3.2 ServletActionContext
它继承ActionContext,所以ServletActionContext也可以得到HttpServetRequest、HttpServletResponse,,它也提供了直接与Servlet相关对象访问的功能.
总结:不难看出,两者之间还是存在很多共同功能,那么我们还是根据自己的需求进行选择,能用ActionContext对象满足就尽量使用ActionContext,避免让我们直接去访问Servlet对象。另外,不要在Action还没实例化的时候去通ActionContext调用方法,因为Action实例在ActionContext实例之前创建,ActionContext中一些值还没有设置,会返回null。
4. application实例 (统计在线人数 )
4.1 登录程序中 LoginAction.java
// 统计在线人数 Map application = ActionContext.getContext().getApplication(); Integer count = (Integer) application.get("count"); if(null == count){ count=1; }else{ count++; } application.put("count", count);
4.2 注销程序中 ExitAciton.java
Map application = ActionContext.getContext().getApplication(); Integer count = (Integer) application.get("count"); count--; application.put("count", count);
原文:http://www.cnblogs.com/pxjgood/p/3991945.html
内容总结
以上是互联网集市为您收集整理的暑期项目经验(九) -- request session application全部内容,希望文章能够帮你解决暑期项目经验(九) -- request session application所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。