访问web元素

分别介绍两种方法来取得request、session、application和 HttpServletRequest、HttpSession、ServletContext

这里是第一种方法,不过不常用,过于依赖于容器

Java代码
  1. public   class  LoginAction  extends  ActionSupport {    
  2.         
  3.     private  Map request;    
  4.     private  Map session;    
  5.     private  Map application;    
  6.         
  7.     public  LoginAction1() {    
  8.         request = (Map)ActionContext.getContext().get("request" );    
  9.         session = ActionContext.getContext().getSession();    
  10.         application = ActionContext.getContext().getApplication();    
  11.     }    
  12.     
  13.        public  String execute() {    
  14.         request.put("r1""r1" );    
  15.         session.put("s1""s1" );    
  16.         application.put("a1""a1" );    
  17.         return  SUCCESS;     
  18.     }    
  19.         
  20. }    
public class LoginAction extends ActionSupport {  
      
    private Map request;  
    private Map session;  
    private Map application;  
      
    public LoginAction1() {  
        request = (Map)ActionContext.getContext().get("request");  
        session = ActionContext.getContext().getSession();  
        application = ActionContext.getContext().getApplication();  
    }  
  
       public String execute() {  
        request.put("r1", "r1");  
        session.put("s1", "s1");  
        application.put("a1", "a1");  
        return SUCCESS;   
    }  
      
}  




第二种方法:这种方法最常用!!!! struts标签访问,加“#”。
//只用这种方法!!!这种方法最常用(而且中间涉及到一种思想:控制反转或称依赖注入)

Java代码
  1. package  dalei;  
  2. import  java.util.Map;  
  3. import  org.apache.struts2.interceptor.ApplicationAware;  
  4. import  org.apache.struts2.interceptor.RequestAware;  
  5. import  org.apache.struts2.interceptor.SessionAware;  
  6. import  com.opensymphony.xwork2.ActionSupport;  
  7. public   class  Action_02  extends  ActionSupport  implements  RequestAware,  
  8.         SessionAware, ApplicationAware {  
  9.     //IoC inverse of control(控制反转)   
  10.     //DI dependency injection(依赖注入)   
  11.     private  Map<String, Object> request;  
  12.     private  Map<String, Object> session;  
  13.     private  Map<String, Object> application;  
  14.     //因为是Map类型的数据,所以不能再用以前的setAttribute。   
  15.     public  String execute() {  
  16.         request.put("r1""r1" );  
  17.         session.put("s1""s1" );  
  18.         application.put("a1""a1" );  
  19.         return  SUCCESS;  
  20.     }  
  21.     //负责把三个元素new()出来,容器帮忙来初始化。   
  22.     @Override   
  23.     public   void  setRequest(Map<String, Object> request) {  
  24.         this .request = request;  
  25.     }  
  26.     @Override   
  27.     public   void  setSession(Map<String, Object> session) {  
  28.         this .session = session;  
  29.     }  
  30.     @Override   
  31.     public   void  setApplication(Map<String, Object> application) {  
  32.         this .application = application;  
  33.     }  
  34. }                                                                
  35.   
  36.                                                        Action_02.java  
package dalei;
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;
public class Action_02 extends ActionSupport implements RequestAware,
		SessionAware, ApplicationAware {
	//IoC inverse of control(控制反转)
	//DI dependency injection(依赖注入)
	private Map<String, Object> request;
	private Map<String, Object> session;
	private Map<String, Object> application;
	//因为是Map类型的数据,所以不能再用以前的setAttribute。
	public String execute() {
		request.put("r1", "r1");
		session.put("s1", "s1");
		application.put("a1", "a1");
		return SUCCESS;
	}
	//负责把三个元素new()出来,容器帮忙来初始化。
	@Override
	public void setRequest(Map<String, Object> request) {
		this.request = request;
	}
	@Override
	public void setSession(Map<String, Object> session) {
		this.session = session;
	}
	@Override
	public void setApplication(Map<String, Object> application) {
		this.application = application;
	}
}                                                              

                                                       Action_02.java



  1. <action name= "er" class = "dalei.Action_02" >  
  2.            <result>  
  3.               /hello.jsp  
  4.            </result>  
  5.        </action>                    

 <action name="er"class="dalei.Action_02">
            <result>
               /hello.jsp
            </result>
        </action>	             	
                                                         struts.xml

struts中,jsp页面取context中的值:

  1. <s:property value="#request.r1" /> | <%=request.getAttribute( "r1" ) %><br>  
  2.     <s:property value="#session.s1" />  |  <%=session.getAttribute( "s1" ) %><br>  
  3.     <s:property value="#application.a1" />  |  <%=application.getAttribute( "a1" )%><br>  
  4.    <s:debug />  
  5.                                                   hello.jsp  
……
<%@taglib uri="/struts-tags" prefix="s" %>
……
<body>
……
<s:property value="#request.r1"/> | <%=request.getAttribute("r1") %><br>
    <s:property value="#session.s1"/>  |  <%=session.getAttribute("s1") %><br>
    <s:property value="#application.a1"/>  |  <%=application.getAttribute("a1")%><br>
   <s:debug />
……
  </body>		
……                                                            

                                                          hello.jsp



第三种方法

Java代码
  1. import  javax.servlet.ServletContext;    
  2. import  javax.servlet.http.HttpServletRequest;    
  3. import  javax.servlet.http.HttpSession;     
  4. import  org.apache.struts2.ServletActionContext;    
  5. import  com.opensymphony.xwork2.ActionSupport;    
  6.     
  7. public   class  LoginAction3  extends  ActionSupport {    
  8.         
  9.     private  HttpServletRequest request;    
  10.     private  HttpSession session;    
  11.     private  ServletContext application;    
  12.         
  13.     public  LoginAction3() {    
  14.         request = ServletActionContext.getRequest();    
  15.         session = request.getSession();    
  16.         application = session.getServletContext();    
  17.     }    
  18.         
  19.     public  String execute() {    
  20.         request.setAttribute("r1""r1" );    
  21.         session.setAttribute("s1""s1" );    
  22.         application.setAttribute("a1""a1" );    
  23.         return  SUCCESS;     
  24.     }    
  25.         
  26. }    
import javax.servlet.ServletContext;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpSession;   
import org.apache.struts2.ServletActionContext;  
import com.opensymphony.xwork2.ActionSupport;  
  
public class LoginAction3 extends ActionSupport {  
      
    private HttpServletRequest request;  
    private HttpSession session;  
    private ServletContext application;  
      
    public LoginAction() {  
        request = ServletActionContext.getRequest();  
        session = request.getSession();  
        application = session.getServletContext();  
    }  
      
    public String execute() {  
        request.setAttribute("r1", "r1");  
        session.setAttribute("s1", "s1");  
        application.setAttribute("a1", "a1");  
        return SUCCESS;   
    }  
      
}  




第四种方法

Java代码
  1. import  javax.servlet.ServletContext;    
  2. import  javax.servlet.http.HttpServletRequest;    
  3. import  javax.servlet.http.HttpSession;    
  4.     
  5. import  org.apache.struts2.interceptor.ServletRequestAware;    
  6.     
  7. import  com.opensymphony.xwork2.ActionSupport;    
  8.     
  9. public   class  LoginAction  extends  ActionSupport  implements  ServletRequestAware {    
  10.         
  11.     private  HttpServletRequest request;    
  12.     private  HttpSession session;    
  13.     private  ServletContext application;    
  14.         
  15.     public  String execute() {    
  16.         request.setAttribute("r1""r1" );    
  17.         session.setAttribute("s1""s1" );    
  18.         application.setAttribute("a1""a1" );    
  19.         return  SUCCESS;     
  20.     }    
  21.     
  22.     @Override     
  23.     public   void  setServletRequest(HttpServletRequest request) {    
  24.         this .request = request;    
  25.         this .session = request.getSession();    
  26.         this .application = session.getServletContext();    
  27.     }    
  28.         
  29. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值