struts中获取域
在struts的Action中,有三种方法可以得到request、session、servletContext域。
1.通过ServletActionContext类获取对象
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
ServletContext servletContext = ServletActionContext.getServletContext();
//操作
request.setAttribute("request_data","request_data_servlet");
session.setAttribute("session_data","session_data_servlet");
servletContext.setAttribute("servletcontext_data","servletcontext_data_servlet");
2.通过ActionContext类获取Map
ActionContext context = ActionContext.getContext();
Map<String, Object> request = context.getContextMap();
Map<String, Object> session = context.getSession();
Map<String, Object> application = context.getApplication();
//操作
request.put("request_data","request_data_struts");
session.put("session_data","session_data_struts");
application.put("servletcontext_data","servletcontext_data_struts");
3.通过实现接口,注入map对象
public class DataAction extends ActionSupport implements RequestAware,
SessionAware,ApplicationAware{
Map<String,Object> request;
Map<String,Object> session;
Map<String,Object> application; public String execute()throws Exception{
request.put("request_data","request_data_注入");
session.put("session_data","session_data注入");
application.put("servletcontext_data","servletcontext_data_注入");
return SUCCESS;
} @Override
public void setRequest(Map<String, Object> map) {
this.request = map;
} @Override
public void setApplication(Map<String, Object> map) {
this.application = map;
} @Override
public void setSession(Map<String, Object> map) {
this.session = map;
}
}
4.三者比较
方法1:使用servlet API,需要额外引入servlet包,但是可以调用getContextPath()等对象方法;
方法2:struts方式,使用解耦的方式实现对数据的操作,不需要引入额外的包,但是只能设置和获取值;
方法3:比较复杂,但是可以在优化时使用;
方法2需要使用ActionContext对象获取其他域,ActionContext无法放在构造函数中初始化。而方法3使用动态注入的方式获取其他域对象,一旦Action对象创建,域值也存在了。
struts中获取域的更多相关文章
- Active Directory中获取域管理员权限的攻击方法
Active Directory中获取域管理员权限的攻击方法 译:by backlion 0x00 前言 攻击者可以通过多种方式在Active Directory中获得域管理员权限, ...
- struts框架问题六之从值栈中获取值
6. 问题六: 在JSP中获取值栈的数据 * 总结几个小问题: > 访问root中数据 不需要# > 访问context其它对象数据 加 # > 如果向root中存入对象的话,优先使 ...
- el语句 的 变量只能从域对象中获取 所以需要先添加到域对象
el语句 的 变量只能从域对象中获取 所以需要先添加到域对象
- EL获取域中的数据
EL(Expression Language)是表达式语言,EL的使用可以减少JAVA代码的书写. 1.EL表达式中的常量: <body bgcolor="#7fffd4"& ...
- SpringMVC从Session域中获取值
SpringMVC从Session域中获取值 SpringMVC环境自行搭建 第一步:前端页面 第二步.后台代码 第三步.响应视图 第四步.在当前处理器所在的类设置@SessionAttributes ...
- SpringMVC从Request域中获取数据
SpringMVC从Request域中获取数据的三种方式 SpringMVC环境自行搭建, 约定存在如下目录和文件:/WEB-INF/pages/success.jsp 方式一:传入Model对象 前 ...
- Struts中的OGNL和EL表达式笔记
Struts中的OGNL和EL表达式笔记 OGNL(Object-Graph Navigation Language),可以方便的操作对象属性的表达式语言. 1.#符号的用途 一般有三种方式: 1.1 ...
- Struts中文件的上传与下载
前面学到的用组件去上传 前台: 1.post表单提交 2.表单类型 multipart/form-data 3.intput type=file 后台: Apach提供的FileUpload组件 核心 ...
- Struts中的数据处理的三种方式
Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() ...
随机推荐
- hdu 1142 用优先队列实现Dijkstra
之前很认真地看了用优先队列来实现Dijkstra这块,借鉴了小白书上的代码模板后,便拿这道题来试试水了.这道题的大意就是问你从地点1到地点2有多少条满足条件的路径(假设该路径经过 1->...- ...
- D3.js 比例尺的使用
比例尺是 D3 中很重要的一个概念,直接用数值的大小来代表像素不是一种好方法 一.为什么需要比例尺 制作一个柱形图,会有一个数组:var dataset = [ 250 , 210 , 170 , 1 ...
- ASP.NET C#_HTML练习
1. textarea和<input type=”text”>的区别是什么? 前者是多行输入框,后者是单行输入框 2. 如何让下拉框菜单支持多选? <select multiple ...
- Deep Learning in Bioinformatics
最近在学tensorflow,深度学习的开源工具,很好奇在生信领域深度学习都能做些什么东西. 镇楼的综述:Deep Learning in Bioinformatics 几篇文章读读看: Deep l ...
- 由函数clock想到的
今天介绍一下clock这个函数的使用,它是C标准库的一部分,声明在头文件<time.h>中,返回处理器使用的时间值,函数声明为: clock_t clock(void); 这个函数看起来很 ...
- javaScript定义对象的方法
转自souhu新闻http://news.sohu.com/20110215/n279335637.shtml? javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放 ...
- gulp-webpack工程化实现electron
参考网站: https://www.npmjs.com/package/babel-loader https://www.npmjs.com/package/gulp https://www.npmj ...
- X-UniTMX:导入大型Tiled地图文件(*.tmx)到Unity3d中比较好的插件
因工作原因,需要导入格子数为1200x1200的Tiled地图文件(*.tmx)到Unity3d中显示出来.尝试过一些其它插件,后面发现X-UniTMX是比较好用的. X-UniTMXhttp://f ...
- boost 源码编译 的 Makefile.am写法备份
include $(top_srcdir)/common.mk bin_PROGRAMS= lib_LIBRARIES= lib_LTLIBRARIES= lib_LTLIBRARIES+=libSt ...
- JDE开发端安装问题(JDE初步卸载重装)
JDE版本:9.1.4 所遇场景:安装JDE客户端.WEBServer后,卸载重新安装.在安装client后提示找不到DV\PY包. 日志installActionsXXX.log中显示 信息: 10 ...