struts2学习笔记【九】/ 获取request,Session的方法

1. 获取requestsession的方法

1.1. IOC

public class Test extends ActionSupport{

     ActionContext context;

     Map request;

     Map session;

     Map application;

    public String execute()throws Exception{

     context = ActionContext.getContext();

       request = (Mapcontext.get("request");

     session = context.getSession();

       application = context.getApplication();

     request.put("req""ceshi");

     session.put("sess""admin");

     return "SUCCESS";

     }

}

前台取值方法:

<s:property  value="#request.req">

<s:property  value="#session.sess">

这是OGNL写法,在后面我们将详细的学习。

1.2. IOC模式

public class Test extends ActionSupport 

implements RequestAware,SessionAware,ApplicationAware{

Map request;

Map session;

Map application;

public String execute()throws Exception{

request.put("req""ceshi");

session.put("sess""admin");

return "SUCCESS";

}

public void setRequest(Map request) {

this.request = request;

}

public void setSession(Map session) {

this.session = session;

}

public void setApplication(Map application) {

this.application = application;

}

}

该方法区别与第一个方法的地方在于其实现了几个借口,同时实现了其自带的几个方法,这几个set方法会自动寻找类的属性,在方法体中进行赋值操作,容器自己注入。

以上两种方法,如果需要获得容器对应的作用域中固有属性,就没有用了。

1.3. IOC模式

public class TestScope extends ActionSupport{

HttpServletRequest request;

HttpSession session;

ServletContext application;

public String execute()throws Exception{

request = ServletActionContext.getRequest();

session = request.getSession();

application = ServletActionContext.getServletContext();

request.setAttribute("loginname""admin");

return "SUCCESS";

}

}

如果只是单纯的传递值,那么以上两种方法均可以达到,但是如果需要用到一些servlet本身的属性时,这样的操作就很有价值了。

1.4. IOC模式

public class TestScope extends ActionSupport implements 

ServletRequestAware,ServletContextAware

{

HttpServletRequest request;

HttpSession session;

ServletContext application;

public String execute()throws Exception{

session = request.getSession();

request.setAttribute("loginname""admin");

return "SUCCESS";

}

public void setServletRequest(HttpServletRequest request) {

this.request = request;

}

public void setServletContext(ServletContext application) {

this.application = application;

}

}

唯一需要我们关注的时,在系统注入的时候,session没有被注入,我们必须手动的通过request这个属性来获取session的值。

什么是IOC,有兴趣可以自己学习,一下,不过我相信,通过以上例子,大家应该有个模糊的印象。

<!--EndFragment-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值