`
pavel
  • 浏览: 930442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

STRUTS2获得内置对象

阅读更多

在struts2中,request和session都被隐藏了struts提供两种方式访问session和request,其中比较常用的是利用SPRING里面所说的IOC即控制反转


IOC方式:

action类实现ServletRequestAware接口,并新建一个HttpServletRequest request

public class UserLoginAction extends ActionSupport implements ServletRequestAware{

   public void setServletRequest(HttpServletRequest request) {

     this.request=request;

  }

 然后可以生成的request得到对象,如request.getRemoteAddr()

action类实现SessionAware接口,并创建一个MAP对象session

public class UserLoginAction extends ActionSupport implements ServletRequestAware,SessionAware{

   public void setServletRequest(HttpServletRequest request) {

     this.request=request;

  }

public void setSession(Map session) {

  this.session=session;  

 }


非IOC方式:

这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及org.apache.struts2.ServletActionContext类,具体的方法如下所示。

获得request对象:

A HttpServletRequest request = ServletActionContext.getRequest(); 

  ServletContext application = ServletActionContext.getServletContext();

B.ActionContext ct= ActionContext.getContext()

   HttpServletRequest request= (HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST); 

   或

    ct.put("req","request范围");

    ct.getSession().put("session","session范围");

    ct.getApplication().put("application","application范围");

显示

   ${applicationScope.req}


获得session对象:

在Struts2中底层的session都被封装成了Map类型,我们称之为SessionMap,而平常我们所说的session则是指HttpSession对象,具体的获得方法如下所示。

A.Map session=ActionContext.getSession();

B.Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);

得到这个SessionMap之后我们就可以对session进行读写了,如果我们想得到原始的HttpSession可以首先得到HttpServletRequest对象,然后通过request.getSession()来取得原始的HttpSession对象。一般情况下SessionMap已经可以完成所有的工作,我们不必再去碰底层的session了。

分享到:
评论

相关推荐

    Struts2内置拦截器简介

    ### Struts2内置拦截器简介 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2的核心是拦截器(Interceptor)机制...

    Struts2深入理解

    - **访问四大作用域中的数据:** Struts2提供了内置的标签库,结合OGNL可以让开发者方便地访问应用中的各种数据。 - **ValueStack与ActionContext:** - **ValueStack存在于Action上下文中:** 每次处理请求时,...

    struts2反序列化漏洞,存在s2-005、s2-016、s2-016_3、s2-017

    这些漏洞允许攻击者通过精心构造的输入,利用Struts2的内置机制执行任意代码,从而对系统造成严重危害。 首先,s2-005漏洞(CVE-2012-0881)是2012年发现的一个严重问题,它涉及到Struts2的OGNL(Object-Graph ...

    Struts2知识点总结

    Struts2框架经过多年的迭代和发展,其稳定性和功能的全面性得到了广泛认可。尽管当前Spring MVC等其他MVC框架的流行,Struts2仍然是许多企业级应用和遗留系统的首选。掌握Struts2的知识点,对于从事Java Web开发的...

    struts2基础jar包

    12. ** strut2的安全性**:虽然Struts2在过去曾出现过一些安全漏洞,但随着版本的更新,这些问题得到了修复。开发者需要注意及时更新Struts2的版本,以防止已知安全问题。 以上就是关于“struts2基础jar包”所包含...

    struts2参考文档(word版)

    在进行数据校验方面,Struts2提供了一套内置的验证机制,确保了输入数据的正确性。Web项目国际化是现代Web应用的必备功能,Struts2支持多语言环境。最后,SiteMesh页面布局框架的引入,使得开发者可以方便地实现统一...

    Struts2入门教程.pdf

    - **Struts2的吸引力**:由于其优秀的设计理念和技术特性,Struts2迅速获得了广泛的关注和应用。对于开发者而言,Struts2不仅提供了更为灵活、高效的开发方式,还具备良好的扩展性和社区支持。 #### 二、Struts2...

    Struts2入门教程

    如果你只希望在最短的时间内获得对Struts2的最大了解程度,本书的内容可能更加适合你。本书的内容是在学习共享的精神下整理出来的,作者希望所有的朋友都能共享这些资料,并希望得到更多的反馈和指教。 知识点三:...

    Struts2学习笔记2012

    Struts2提供了内置的数据验证机制,可以通过在Action类中定义`validate()`方法来实现。此方法会在执行Action前被调用,用于检查用户输入是否符合预期格式。 #### 七、StrutsValueStack(值栈)Debug 值栈是Struts2...

    struts2与struts的对比

    ### Struts2与Struts的对比 #### 一、简介 在Java Web开发领域,Struts框架一直是构建企业级应用的重要工具之一。Struts最初版本(通常称为...对于开发者而言,选择Struts2意味着可以获得更好的开发体验和技术支持。

    struts2教程我在培训时用的

    - **框架成熟度**:Struts2作为Apache基金会下的开源项目,得到了更广泛的社区支持和发展。 #### 二、Struts2实战指南 **2.1 下载并安装Struts2** - **步骤**: 1. 访问Struts2官方网站下载最新版本。 2. 解压...

    研磨struts2_系列文章.pdf

    OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于访问和操作Java对象图,常用于Struts2的视图层数据绑定。 ### Struts2的Taglib Struts2提供了一系列标签库(Taglib),包括数据标签、控制...

    struts1和struts2的区别.txt

    ### Struts1与Struts2的关键区别 ...综上所述,虽然Struts1在早期Java Web应用开发中发挥了重要作用,但随着技术的发展,Struts2凭借其更先进的设计理念和技术特性,在实际应用中得到了更广泛的认可和采用。

    struts2,jar

    在"struts2,jar"这个压缩包中,我们很可能是得到了Struts2框架的核心库和其他相关组件的JAR文件。这些JAR文件是开发者在基于Struts2构建应用时需要引入的依赖,它们包含了运行Struts2所需的各种类和资源。 Struts2...

Global site tag (gtag.js) - Google Analytics