struts2笔记06-ServletXxxAware接口

Posted false

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
	}

}

  

以上是关于struts2笔记06-ServletXxxAware接口的主要内容,如果未能解决你的问题,请参考以下文章

Struts2学习笔记-jsp中引用struts2框架

struts2标签学习笔记

Struts2学习笔记二:Struts2重定向和转发配置Struts2获取表单参数域对象

Struts2学习笔记

[Struts2学习笔记] -- 输入校验

Struts2学习笔记四:Struts2拦截器学习拦截器实现案例Struts2标签学习