zoukankan      html  css  js  c++  java
  • action访问servlet的API并且获取到MAP或者httpServlet类型的application,session,request


    public
    class testAction3 extends ActionSupport { private Map<String,Object> request; private Map<String,Object> session; private Map<String,Object> application; /** * 构造函数,没有返回值 */ public testAction3(){ this.request=(Map) ActionContext.getContext().get("request"); this.session=ActionContext.getContext().getSession(); this.application=ActionContext.getContext().getApplication(); } @Override public String execute(){ System.out.println("开始。。。。"); this.request.put("reqAttr","reqDirect"); this.session.put("sessionAttr", "sessionDirect"); this.application.put("appAttr", "appDirect"); return SUCCESS; } }
     <body>
        request:${reqAttr}<br>
        session:${sessionAttr}<br>
        application:${appAttr}<br>
        ------------------------------<br>
        request:${requestScope.reqAttr}<br>
        session:${sessionScope.sessionAttr}<br>
        application:${applicationScope.appAttr}<br>
      </body>

    或者使用IoC方法:需要实现相应的接口

    public class testAction3 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) {
            // TODO Auto-generated method stub
            this.application=application;
        }
        @Override
        public void setSession(Map<String, Object> session) {
            // TODO Auto-generated method stub
            this.session=session;
        }
        @Override
        public void setRequest(Map<String, Object> request) {
            // TODO Auto-generated method stub
            this.request=request;
        }
    
        @Override
        public String execute(){
            System.out.println("开始。。。。");
            this.request.put("reqAttr","reqDirect");
            this.session.put("sessionAttr", "sessionDirect");
            this.application.put("appAttr", "appDirect");
            return SUCCESS;
        }
    }

     二、获取http类型

    public class testAction3 extends ActionSupport{
        
        private HttpServletRequest request;
        private HttpServletResponse response;
        private HttpSession session;
        private ServletContext application;
        /**
         * 获取
         */
        public testAction3(){
            this.request=ServletActionContext.getRequest();
            this.response=ServletActionContext.getResponse();
            this.session=this.request.getSession();
            this.application=ServletActionContext.getServletContext();
        }
    
        @Override
        public String execute() throws Exception{
            System.out.println("开始。。。。");
            this.request.setAttribute("reqAttr", "reqDirect");
            this.application.setAttribute("appAttr", "applicationDirect");
            this.session.setAttribute("sessionAttr", "sessionDirect");
    //        Ajax使用的时候可以用    
    //        PrintWriter out=response.getWriter();
    //        out.print("response");
    //        out.flush();
    //        out.close();
    //        return null;
            return SUCCESS;
        }
    }

    或者用依赖注入方式:

    public class testAction3 extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{
        
        private HttpServletRequest request;
        private HttpServletResponse response;
        private HttpSession session;
        private ServletContext application;
        /**
         * 获取
         */
        @Override
        public void setServletContext(ServletContext application) {
            // TODO Auto-generated method stub
            this.application=application;
        }
        @Override
        public void setServletResponse(HttpServletResponse response) {
            // TODO Auto-generated method stub
            this.response=response;
        }
        @Override
        public void setServletRequest(HttpServletRequest request) {
            // TODO Auto-generated method stub
            this.request=request;
        }
    
        @Override
        public String execute() throws Exception{
            this.session=this.request.getSession();//session是通过request获取,所以没有关于实现session的接口
            System.out.println("开始。。。。");
            this.request.setAttribute("reqAttr", "reqDirect");
            this.application.setAttribute("appAttr", "applicationDirect");
            this.session.setAttribute("sessionAttr", "sessionDirect");
            return SUCCESS;
        }
    
    
    }
  • 相关阅读:
    如何选择开源许可证?(转)
    gdb的使用(转)
    git的使用
    2017-3-13 leetcode 4 11 15
    2017-3-12 leetcode 167 209 216
    2017-3-11 leetcode 217 219 228
    2017-3-10 leetcode 229 238 268
    1175: 零起点学算法82——find your present
    1174: 零起点学算法81——求整数绝对值
    1173: 零起点学算法80——求实数绝对值
  • 原文地址:https://www.cnblogs.com/-beauTiFul/p/6279137.html
Copyright © 2011-2022 走看看