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;
	}

}

  

时间: 2024-10-24 02:15:48

struts2笔记06-ServletXxxAware接口的相关文章

Effective C++笔记06:继承与面向对象设计

关于OOP 博客地址:http://blog.csdn.net/cv_ronny 转载请注明出处! 1,继承可以是单一继承或多重继承,每一个继承连接可以是public.protected或private,也可以是virtual或non-virtual. 2,成员函数的各个选项:virtual或non-virtual或pure-virtual. 3,成员函数和其他语言特性的交互影响:缺省参数值与virtual函数有什么交互影响?继承如何影响C++的名称查找规则?设计选项有如些?如果class的行为

Struts2笔记——2.Action的实现、配置

实现Action Struts2中,action负责对用户请求的处理,因此它是整个应用的控制器,也是整个应用的核心.而对开发者来说,他们需要提供大量的action类.相对于struts1而言,struts2的浸入性更低,因为它的action无需继承任何父类或者接口,仅仅是一个普通的POJO(但是应该包括一个无参数的execute方法).struts2通常直接使用action来封装http请求参数(可以理解为表单中的参数,如username,password等),因此在对应的action类中,应该

《30天自制操作系统》笔记(06)——CPU的32位模式

<30天自制操作系统>笔记(06)--CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件本身的设计就具有事件驱动的性质,所以软件层面上才有基于事件的消息机制. 但上一篇没有说明中断的来龙去脉,本篇就从头到尾描述一下CPU与此相关的设置问题. Segment 32位的CPU使用32条地址线,能区分232=4G个内存地址.每个内存地址都有1Byte的内容. 分段,就是将4GB的内存分成很多块(blo

iOS学习笔记06—Category和Extension

iOS学习笔记06—Category和Extension 一.概述 类别是一种为现有的类添加新方法的方式. 利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(如某些框架类). 二.示例 1.声明类别 @interface NSString (CategoryDemo) -(NSNumber*)

struts2笔记04-XxxAware接口

1.XxxAware接口 ApplicationAware, RequestAware,SessionAware, ParameterAware.      struts2提供了这四个Aware接口用于Action类的实现,从而注入对应的application.request.session,parameter, 不过它们都是Map类型的.这和ActionContext一样是解耦的,即没有引入servlet相关的包,是在struts2内部的.      通过XxxAware接口的实现,可以方便的

[原创]java WEB学习笔记06:ServletContext接口

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

struts2.1笔记06:struts2开发环境的搭建实际操作出现的问题

1.我根据新建一个struts工程之后,启动报错,如下: 1 六月 29, 2015 3:08:18 下午 org.apache.catalina.core.AprLifecycleListener init 2 信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\sof

《C#图解教程》读书笔记之六:接口和转换

本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.接口那点事儿 (1)什么是接口? 一组函数成员而未实现的引用类型.只有类和结构能实现接口. (2)从IComparable接口看接口实例: 假设有如下一段代码,它使用Array类的一个静态方法Sort对一个未排序的int类型数组进行排序,并输出排序后的结果. using System; class Program { static void Main() { var myInt = new[] { 20, 4, 1

7、Spring+Struts2+MyBaits(无映射接口实现类)

1.创建userinfo.sql数据库脚本 1 create table userinfo 2 (id number(4), 3 name varchar2(50), 4 password varchar2(20), 5 telephone varchar2(15), 6 isadmin varchar2(5)); 7 8 --4.2 用户表序列 9 create sequence seq_userinfo; 10 alter table userinfo add constraint pk_u