Action访问Servlet API

本文介绍Struts2框架如何通过ActionContext类与ServletAPI交互。具体包括使用ActionContext获取和设置各种作用域的数据,如HttpSession和ServletContext等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    
   struts2的Action并未直接与任何Servlet API耦合。但是struts2提供了
一个ActionContext类,struts2的Action可以通过该类来访问Servlet API。

   下面是ActionContext类常用的几种方法:

   Object get(Object key):该方法类似于调用HttpServletRequest的getAttribute(String name)方法;
   
   Map getApplication();返回一个Map对象,该对象模拟了该应用的ServletContext实例;

   static ActionContext getContext();静态方法,获取系统的ActionContext实例;

   Map getParameters();获取所有请求的参数。类似于调用HttpServletRequest对象的getParameterMap方法;

   Map getSSession(); 返回一个Map对象,该Map对象模拟了HttpSession实例;

   void setApplication(Map application):直接传入一个Map实例,将该Map实例里的key-value对转换成
   application的属性名、属性值;

   void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成
   session的属性名、属性值; 


------------------------------------------------------------------------------------------------

例如:

   //获取ActionContext实例,通过该实例访问Servlet API
   ActionContext ctx= ActionContext.getContext();

   //将登录的username设置成一个HttpSession属性
   ctx.getSession().put("user",getUsername());

   //直接设置HttpServletRequest属性
   ctx.put("tip","服务器提示:登录失败");

   //获取ServletContext里的counter属性
   Integer counter = (Integer)cxt.getApplication().get("counter");


-----------------------------------------------------------------------------------------------

  JSP页面如何访问Action中设置的属性:

   例如:
     //通过表达式访问ServletContext对象的属性
     ${applicationScope.counter}

    //通过表达式访问HttpSession对象的属性
     ${sessionScope.user}

    //通过表达式访问HttpServletRequest对象的属性
    ${requestScope.tip}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值