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;
        }
    
    
    }
  • 相关阅读:
    项目管理【53】 | 项目风险管理-规划风险应对
    Learning a Continuous Representation of 3D Molecular Structures with Deep Generative Models
    转:DenseNet
    转:期刊投稿中的简写(ADM,AE,EIC等)与流程状态解读
    论文中如何写算法伪代码
    氨基酸,多肽,蛋白质等
    pytorch查看全连接层的权重和梯度
    AI制药文章
    long-tail datasets
    转:Focal Loss理解
  • 原文地址:https://www.cnblogs.com/-beauTiFul/p/6279137.html
Copyright © 2011-2022 走看看