struct2利用相关的Aware接口
Struts 2提供了Aware接口。Aware为"感知"的意思,实现了相关Aware接口的Action能够感知相应的资源。Struts在实例化一个Action实例时,如果发现它实现了相应的Aware接口,会把相应的资源通过Aware接口方法注射进去。这种方式也可以叫做注射方式(IoC方式)。
Servlet API中常用对象application、request、response、Session对应的Aware接口分别为ServletContextAware、ServletRequestAware、ServletResponseAware、SessionAware。例如,下面的Action实现了这4种接口,能够感知到这些对象。
package com.helloweenvsfei.struts2.action; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.util.ServletContextAware; public class ServletAwareAction extends ActionSupport implements ServletRequestAware, ServletResponseAware, SessionAware, Servlet ContextAware { private ServletContext application; // Servlet上下文 private HttpServletRequest request; // request对象 private HttpServletResponse response; // response对象 private Map session; // session对象 public void setServletRequest(HttpServletRequest request) { // request的setter方法 this.request = request; } public void setServletResponse(HttpServletResponse response) { // request的setter方法 this.response = response; } public void setSession(Map sessionValues) { // session的setter方法 this.session = sessionValues; } public void setServletContext(ServletContext application) { // servletContext的setter方法 this.application = application; } public String execute() { // 主方法 String upload = application.getRealPath("upload"); // 使用application request.getRemoteAddr(); // 使用request response.getContentType(); // 使用response session.get("account"); // 使用Session return Action.SUCCESS; }}
实现了ServletRequestAware接口便会有一个setServletRequest()方法获取request对象。实现了ServletResponseAware接口便会有一个setServletResponse()方法获取response对象。不同的是SessionAware接口的setter方法是setSession()方法的参数是Map类型。该Map代表Session内存储的各种数据。
Aware接口其实是一种拦截器,拦截器代码会在执行Action之前执行,将相关的Servlet对象设置进来
转载于:https://www.cnblogs.com/ydymz/p/8330190.html
struct2利用相关的Aware接口相关推荐
- python 接入百度地图数据包下载_Python爬虫-利用百度地图API接口爬取数据并保存至MySQL数据库...
首先,我这里有一份相关城市以及该城市的公园数量的txt文件: 分析-02.png 其次,利用百度地图API提供的接口爬取城市公园的相关信息. 所利用的API接口有两个: 1.http://api.ma ...
- Spring 各种 Aware 接口回调注入
Spring bean 实现了如下 Aware 接口,可以注入相关对象: BeanFactoryAware, //获取 IoC 容器 BeanFactory 的能力 ApplicationContex ...
- 手写Spring-第八章-感受波动!用Aware接口来实现感知
前言 感知,是一个很玄乎的词.其实我们可以这样理解.正常情况下,我们的bean,是不应该意识到Spring框架的存在的,它虽然被Spring所管理,但是它本身意识不到管理者的存在.从初始化,到销毁,在 ...
- spring中的Aware接口原来是这么回事
一.介绍 使用spring开发的同学,或多或少都使用过形如XxxAware这样的接口.spring文档中是这样解释Aware接口的: Spring提供了广泛的Aware回调接口,让bean向容器表 ...
- aware java_spring中一些aware接口
Spring中提供一些Aware相关接口,像是BeanFactoryAware. ApplicationContextAware.ResourceLoaderAware.ServletContextA ...
- 利用微信网页录音接口实现语音搜索
微信网页接口有3个录音相关接口 开始录音接口 wx.startRecord(); 停止录音接口 wx.stopRecord({ success: function (res) { var localI ...
- 利用python3 调用zabbix接口完成批量加聚合图形(screens)
在上一篇博客中,我们完成的利用python3 调用zabbix接口批量增加主机,增加主机的item,增加主机的图形! 接下来我们完成批量增加主机的screen 首先我们要增加screen需要哪些参数呢 ...
- Bean装配之Aware接口
Spring提供了一些以Aware结尾的接口,实现了Aware接口的bean,在被初始化之后,可以获取相应的资源. ApplicationContextAware:实现该接口的bean提供了appli ...
- spring中最重要的一些Aware接口
附上关于这节的spring官方文档: ApplicationContextAware and BeanNameAware aware接口在spring中无处不在,它是用来感知spring的ioc co ...
最新文章
- Java中的String、StringBuilder、StringBuffer
- leetcode 349. 两个数组的交集 两种方案,c语言实现
- 网页title上面添加图片
- 设计模式---接口隔离模式之门面模式(Façade)
- SQL UNION 和 UNION ALL 操作符(mysql)
- MVC2中Area的路由注册实现
- 命名空间不能直接包含字段或方法之类的成员是什么意思_Python 学习笔记之类与实例...
- 【BZOJ 2301】[HAOI2011]Problem b
- QT禁用“最大化按钮“和“禁止调节窗口大小“
- chinese-ocr自然场景下不定长文字识别(ctpn + densenet)
- 【物理应用】基于matlab GUI三相配电网实时仿真【含Matlab源码 1047期】
- matlab最优化函数
- Matlab读取excel文件绘制折线图
- 大数据分析师的报考条件是什么?
- MySQL 子查询之 单行子查询及多行子查询
- 即时通讯IM,是时代进步的逆流?看看JNPF怎么说
- OpenLayers 3实践与原理探究1-ol2 VS ol3
- 没人带宝宝,所以才要送去托育园?
- React Native-6.React Native Text组件,多组件封装实战之凤凰资讯页面
- 入职阿里一周年,我能谈点什么 | 可惜主语不是我~
热门文章
- Android截屏方法总结
- EVM反编译软件Porosity的使用-mac
- 一种实现(无须root)手机截屏方案
- 新一代开源Android渠道包生成工具Walle
- java控制一次传10条数据_java 定时同步数据的任务优化
- JZOJ 4061. 【JSOI2015】字符串树
- 计算机网络基础与信息安全,大学计算机基础计算机网络基础与信息安全计算机网络概述教案.doc...
- php好玩的源码_github上比较有趣的PHP开源项目
- 详细设计 存储分配_万字长文:云架构设计原则(一)
- 运维开发学go还是python_运维工程师是要学python还是学go那?