truts2在Action中如何访问request,session,application(即ServletContext)对象????

方式一:与Servlet API解耦的方式
    
可以使用struts2中提供的Map对象来访问HttpRequest,HttpSession和ServletContext对象,要获取这三个Map对象,可以使用com.opensymphony.xwork2.ActionContext类提供的静态方法

ActionContext ctx=ActionContext.getContext();
   
ctx.getApplication().put(“app”,”Application应用对
象”);//ServletContext放入app
   
ctx.getSession().put(“ses”,”session应用对象”);
   
ctx.put(“req”,”request对象”);

######:
上面的三个方法,仅相当与request,session,applicationsetAttribute(string,object)方法。

struts2中提供的Map对象来提供类似request,session,application内置对象的功能,这些内置对象只有内置对象的一小部分功能,它不依赖于servlet,所以是解耦合的!!!

方式二:与Servlet
API耦合的访问方式

    
也可以直接访问Servlet环境中的HttpRequest,HttpSession和ServletContext对象。通过ServletActionContext.类提供的静态方法直接获取:


      
HttpServletRequest request=ServletActionContext.getRequest();
   
   ServletContext
context=ServletActionContext.getServletContext();
      
HttpSession session=request.getSession();
   
   HttpServletResponse
response=ServletActionContext.getResponse();

方式三、实现相关接口

    1. public class BaseAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {  
    2. private static final long serialVersionUID = 7620009925942346125L;
    3. ActionContext context = ActionContext.getContext();
    4. HttpServletRequest request;
    5. HttpServletResponse response;
    6. SessionMap session;
    7. //获取request,response,session方式一,非IoC方式,不用实现SessionAware, ServletRequestAware, ServletResponseAware
    8. //ActionContext context = ActionContext.getContext();
    9. //HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
    10. //HttpServletResponse response = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE);
    11. //Map session = context.getSession();
    12. //SessionMap session = (SessionMap) context.get(ActionContext.SESSION);
    13. //获取request,response,session方式一,IoC方式,必须实现SessionAware, ServletRequestAware, ServletResponseAware
    14. public void setSession(Map map) {
    15. this.session = (SessionMap) map;
    16. }
    17. public void setServletRequest(HttpServletRequest request) {
    18. this.request = request;
    19. }
    20. public void setServletResponse(HttpServletResponse response) {
    21. this.response = response;
    22. }
    23. }

Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)的更多相关文章

  1. ASP内置对象—Request、Response 、Server、Application 、ObjectContent (二)

    Response (应答)对象 Request 对象.用于在HTTP请求期间,訪问不论什么client浏览器传递给server的信息,包含通过URL传递的參数信息.使用GET方法或POST方法传递的H ...

  2. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  3. JSP内置对象---request对象(用户登录页面(返回值和数组:gerParameter,getParameterValues))

    创建两个jsp页面:reg.jsp 和 request.jsp reg.jsp: <%@ page language="java" import="java.uti ...

  4. JSP学习笔记 - 内置对象 Request

    1.主要掌握以下5个内置对象及其所属类,必须学会在java docs里根据类名查找相应的方法 request     javax.servlet.http.HttpServletRequest res ...

  5. Webform(七)——内置对象(Session、Application)和Repeater的Command操作

    内置对象:用于页面之间的数据交互 为什么要使用这么内置对象?因为HTTP的无状态性. 一.内置对象 (一)Session 跟Cookies一样用来存储用户数据 1.Session.Cookies对比 ...

  6. JSP内置对象---request 对象

    request.jsp: <%@ page language="java" import="java.util.*" contentType=" ...

  7. 内置对象(Session、Application、ViewState)

    内置对象:为了跨页面传值和状态保持.→HTTP的无状态性 [4.]Session:每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 以上所有内容,都跟cook ...

  8. JSP的内置对象 request和response

    文章目录 1.request对象 2.response响应对象 3.out输出对象 4.session会话对象 5.application应用对象 概述 在使用JSP内置对象的时候.不需要先定义这些对 ...

  9. JSP内置对象-request

    JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...

随机推荐

  1. 实现SQL Server中的切割字符串SplitString函数

    有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.没什么好说的,需要的朋友直接拿去用吧 SET ANSI_NULLS ON GO S ...

  2. CSS: CSS常用的文本样式属性

    介绍:CSS常用的文本样式属性 color:  颜色 font-size:  字体大小 font-style (normal.italic.oblique): 字体样式(正常.斜体) font-wei ...

  3. Echarts动画效果:实现数据左右移动

    1.业务背景 图形实时从后台获取数据,让图形从最右边出现,每隔一秒向左移一位,当最左边的数据移到Y轴时,最左边的数据移出屏幕,最右边增加一个数.实现一个从右往左动画的效果 2.先看下项目中的demo解 ...

  4. FrameWork数据权限浅析2之基于用户的配置表实现行级数据安全

    在上一篇笔记中我已经说了如何利用FM自带的机制配合我们已经通过验证的用户空间的组来实现行级数据安全的控制,但是由于上一个方法存在的缺点是以后如果对该对象增加基于用户或者角色的访问权限就需要开发人员去F ...

  5. notepad++列模式

    考虑下面的情况: 已有 AAA BBB CCC 和 aaa bbb ccc 想合并为 AAA aaa BBB bbb CCC ccc 在大写后面,列模式,复制小写,粘贴,结果不是如下: AAA aaa ...

  6. java实现顺序链表

    C&C++是那么难学,以至于我连指针是什么都不知道.所以只能学习java了. 如今想用java实现N年前学过“数据结构(c语言版)”却又是那么吃力! 慢慢练吧! 写此博客,仅标记自己学过数据结 ...

  7. 微信小程序 - 五星评分(含半分)

    转载自:http://blog.csdn.net/column/details/13721.html     演示:     下载:小程序-星级评论.zip  

  8. Openerp 中打开 URL 的三种 方法

    来自:http://shine-it.net/index.php/topic,8013.0.html 最近总结了,Openerp 中打开 URL 的三种 方法: 一.在form view 添加 < ...

  9. linux内核——PAE(物理地址扩展)

    引入PAE机制后,分页模式是怎样的呢? 首先,要搞明白几件事,2.6.11以上版本的linux内核中,存在4中页表(页全局目录,页上级目录,页中级目录,页表),这些页表结构是已经存在于硬盘中的,当进程 ...

  10. PL/SQL详细介绍,设置oracle相关

    1. 实现参照完整性      指若两个表之间具有主从关系(即主外键关系),当删除主表数据时,必须确保相关的从表数据已经被删除.  当修改主表的主键列数据时,必须确保相关从表数据已经被修改.为了实现级 ...