• action解耦方式


    ServletAction方式,必须要有Servlet容器作支持

    package com.hanqi.action;

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

    import org.apache.struts2.ServletActionContext;

    public class TestServletAction {

    public String testServletAction()
    {
    	//访问原生的web资源
    	
    	
    	//1得到servletContext,相当于application
    	ServletContext sc= ServletActionContext.getServletContext();
    	
    	System.out.println("app1="+sc.getAttribute("app1"));
    	
    	sc.setAttribute("app2", "原生的方式加入的application");
    	
    	//2访问Session
    	HttpServletRequest hsr=ServletActionContext.getRequest();
    	HttpSession hs=hsr.getSession();
    	System.out.println("ses1="+hs.getAttribute("ses1"));
    	hs.setAttribute("ses2", "原生方式放入的session");
    	
    	
    	//3访问request
    	System.out.println("req1="+hsr.getAttribute("req1"));
    	
    	hsr.setAttribute("req2", "原生方式放入的request");
    	
    	
    	//4 访问parameter
    	
    	System.out.println("user1="+hsr.getParameter("user"));
    	System.out.println("user2="+hsr.getParameter("user"));
    	return "success";
    }
    

    }

    实现接口方式

    package com.hanqi.action;

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

    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.util.ServletContextAware;

    public class TestServletActionAware
    implements ServletRequestAware, ServletContextAware {

    private ServletContext sc;
    private HttpServletRequest hsr;
    private HttpSession hs;
    @Override
    public void setServletContext(ServletContext arg0) {
    
    	sc=arg0;
    
    }
    
    @Override
    public void setServletRequest(HttpServletRequest arg0) {
    
    	hsr=arg0;
    	
    	hs=arg0.getSession();
    }
    
    public String testServletAware()
    {
    	System.out.println("app1="+sc.getAttribute("app1"));
    	
    	sc.setAttribute("app2", "新的application");
    	System.out.println("ses1="+hs.getAttribute("ses1"));
    	
    	hs.setAttribute("ses2","新的session");
    	System.out.println("user="+hsr.getParameter("user"));
    	
    	hsr.setAttribute("req2", "新的request");
    	return "success";
    }
    

    }

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/nicebaby/p/6086555.html
Copyright © 2020-2023  润新知