zoukankan      html  css  js  c++  java
  • struts2笔记06-ServletXxxAware接口

    1、ServletXxxAware接口

         ActionContext和XxxAware接口对应,属于解耦的设计,但功能单一,我们能够获取到的只是struts2给我们返回的map。ServletActionContext和ServletXxxAware接口对应,属于耦合的设计,但功能强大,能够直接获取servlet相关的对象。

         ServletXxxAware同样是struts2依赖注入给Action类的设计,使用起来比ServletActionContext方便,比如多个action的方法,就不需要每次都从context获取了。

        ServletContextAware,ServletRequestAware, ServletResponseAware

    2、测试代码

    package com.test.action;
    
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.interceptor.ServletResponseAware;
    import org.apache.struts2.util.ServletContextAware;
    
    public class TestServletAwareAction implements ServletContextAware,
    		ServletRequestAware, ServletResponseAware {
    
    	public String execute() {
    		context.setAttribute("applicationKey", "applicationValue");
    		HttpSession session = request.getSession();
    		session.setAttribute("sessionKey", "sessionValue");
    		request.setAttribute("requestKey", "requestValue");
    
    		return "success";
    	}
    
    	// 注入的HttpServletResponse
    	private HttpServletResponse response;
    
    	@Override
    	public void setServletResponse(HttpServletResponse response) {
    		this.response = response;
    	}
    
    	// 注入的HttpServletRequest
    	private HttpServletRequest request;
    
    	@Override
    	public void setServletRequest(HttpServletRequest request) {
    		this.request = request;
    	}
    
    	// 注入的ServletContext
    	private ServletContext context;
    
    	@Override
    	public void setServletContext(ServletContext context) {
    		this.context = context;
    	}
    
    }
    

      

  • 相关阅读:
    年度总结会议
    2018年度移动创新竞赛组总结
    移动竞赛组2019计划
    task ':app:mergeDebugResources' property 'aapt2FromMaven'
    SQL SERVER : 'GO' 附近有语法错误问题
    Visual C# 访问 SQLserver 数据库
    数据库系统概论 第三章 课后作业
    数据库系统概论 第三章 建表&插入SQL语句
    【pyqt5 QtDesigner SQLserver2017】 Python3.6 Demo
    【Win10 + PyCharm + Python + PyQt5 + pymssql】 Python 3.6 访问 SQLserver 2017(对话框界面)1
  • 原文地址:https://www.cnblogs.com/sdnu/p/5352530.html
Copyright © 2011-2022 走看看