struts2 获取request,seesion,application对象

来源:互联网 发布:ubuntu skype 4.3 编辑:程序博客网 时间:2024/06/08 14:21
jsp页面中取值:
requset:
        <%=request.getAttribute("reqname") %>:
        <s:text name="#request.reqname"></s:text>:
        ${reqname }<br>
session:
        <%=session.getAttribute("sessname") %>:;
        <s:text name="#session.sessname"></s:text>:
        ${sessname }<br>
application:
        <%=application.getAttribute("appname") %>:
        <s:text name="#application.appname"></s:text>:
        ${appname }<br>
attr:
        <s:text name="#attr.reqname"></s:text>:
        <s:text name="#attr.sessname"></s:text>:
        <s:text name="#attr.appname"></s:text>

action类中:
方法1、
package com.etc.web;

import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
 * 第一种方式获取页面对象:继承ActionSupport类,通过ActionContext对象获取
 * @author Administrator
 *
 */
public class TestPageObject1 extends ActionSupport{
    private Map request;
    private Map session;
    private Map application;
    public TestPageObject1() {
        request = (Map) ActionContext.getContext().get("request");
        session = ActionContext.getContext().getSession();
        application = ActionContext.getContext().getApplication();
    }
    public String meth(){
        request.put("reqname", "request name");
        session.put("sessname", "session name");
        application.put("appname", "app name");
        return "success";
    }
}
方法2、
package com.etc.web;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 第二种方式获取页面对象:继承ActionSupport类,通过实现RequestAware,SessionAware,ApplicationAware接口,然后实现各自方法
 * @author Administrator
 *
 */
public class TestPageObject2 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
    private Map<String, Object> request;
    private Map<String, Object> session;
    private Map<String, Object> application;
    @Override
    public void setApplication(Map<String, Object> application) {
        this.application = application;
    }
    @Override
    public void setSession(Map<String, Object> session) {
        this.session = session;
    }
    @Override
    public void setRequest(Map<String, Object> request) {
        // TODO Auto-generated method stub
        this.request = request;
    }
    public String meth(){
        request.put("reqname", "request name");
        session.put("sessname", "session name");
        application.put("appname", "app name");
        return "success";
    }
}
方法3、
package com.etc.web;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
/**
 * 第三种方式获取页面对象:继承ActionSupport类,通过ServletActionContext类中获取。
 *
 */
public class TestPageObject3 extends ActionSupport {
    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext application;
    public String meth(){
        request.setAttribute("reqname", "request name");
        session.setAttribute("sessname", "session name");
        application.setAttribute("appname", "app name");
        return "success";
    }
    public TestPageObject3() {
        super();
        request = ServletActionContext.getRequest();
        session = request.getSession();
        application = session.getServletContext();//获取ServletContext对象时从会话中拿
    }
}
方法4、
package com.etc.web;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
/**
 * 第四种方式获取页面对象:继承ActionSupport类,实现ServletRequestAware接口重写setServletRequest方法。
 *
 */
public class TestPageObject4 extends ActionSupport implements ServletRequestAware{
    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext application;
    public String meth(){
        request.setAttribute("reqname", "request name");
        session.setAttribute("sessname", "session name");
        application.setAttribute("appname", "app name");
        return "success";
    }
    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
        session = request.getSession();
        application = session.getServletContext();//获取ServletContext对象时从会话中拿
    }
}
原创粉丝点击