struts2 action中获取request session application的方法

转自: http://blog.csdn.net/itmyhome1990/article/details/7019476#comments

共四种方式:

其中前两种得到的是Map< String,Object > 后两种得到的才是真正的request对象

而Map就是把request对象中的属性取出做成了键值对而已。

【方法一】

    public class LoginAction {  
        private Map request;  
        private Map session;  
        private Map application;  

        public String execute() {  
            request = (Map)ActionContext.getContext().get("request");  
            session = ActionContext.getContext().getSession();  
            application = ActionContext.getContext().getApplication();  
            request.put("username1", "jingjing1");  
            session.put("username2", "jingjing2");  
            application.put("username3", "jingjing3");  
            return "success";  
        }  
    }  

取出结果

    <body>  
       <%  
          String username1 = (String)request.getAttribute("username1");  
          String username2 = (String)session.getAttribute("username2");  
          String username3 = (String)application.getAttribute("username3");  
       %>  
       <%=username1 %>  
       <%=username2 %>  
       <%=username3 %>  
     </body>  

【方法二】

    public class LoginAction implements RequestAware,SessionAware,ApplicationAware {  
        private Map<String, Object> request;  
        private Map<String, Object> session;  
        private Map<String, Object> application;  

        public void setRequest(Map<String, Object> request) {  
            // TODO Auto-generated method stub  
            this.request = request;  
        }  

        public void setSession(Map<String, Object> session) {  
            // TODO Auto-generated method stub  
            this.session = session;  
        }  

        public void setApplication(Map<String, Object> application) {  
            // TODO Auto-generated method stub  
            this.application = application;  
        }  
        public String execute() {  
            request.put("username1", "jingjing11");  
            session.put("username2", "jingjing222");  
            application.put("username3", "jingjing33");  
            return "success";  
        }  
    }  

【方法三】

    public class LoginAction {  
        private HttpServletRequest request;  
        private HttpSession session;  
        private ServletContext application;  
        public String execute() {  

            request = ServletActionContext.getRequest();  
            session = request.getSession();  
            application = session.getServletContext();  

            //application = ServletActionContext.getRequest().getSession().getServletContext();  

            request.setAttribute("aaa", "aaa");  
            session.setAttribute("bbb", "bbb");  
            application.setAttribute("ccc", "ccc");  

            return "success";  
        }  
    }  

【方法四】

    public class LoginAction implements ServletRequestAware {  
        private HttpServletRequest request;  
        private HttpSession session;  
        private ServletContext application;  

        public void setServletRequest(HttpServletRequest request) {  
            // TODO Auto-generated method stub  
            this.request = request;  
            this.session = request.getSession();  
            this.application = session.getServletContext();  
        }  

        public String execute() {         
            request.setAttribute("111", "111");  
            session.setAttribute("222", "222");  
            application.setAttribute("333", "333");  
            return "success";  
        }         
    }  

HttpServletRequest方法总结:

HttpServletRequest接口是继承自ServletRequest接口的,增加了和HTTP相关的一些方法

getScheme() 方法返回请求的计划,比如http,https或者ftp.
getServerName() 方法返回被发送请求的服务器的主机名
getServerPort() 方法返回被发送请求的端口号。
getContextPath() 返回请求地址的根目录,以”/”开关,但不是以”/”结尾。
一个常用的获得服务器地址的连接字符串是:
String path = request.getContextPath();
String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;

getCookies() 取得cookie
getMethod() 取得请求方法,如get,post或put
getRequestURL() 取得请求URL(统一资源定位符)
getRequestURI() 取得请求URI(统一资源标识符)
getSession() 取得对应session

public HttpSession getSession();
public HttpSession getSession(boolean create);
返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。如果调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。

ServletRequestAware与RequestAware的区别
ServletRequestAware——提供对HttpServletRequest对象的访问
RequestAware ——通过Map来提供对所有request属性的访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值