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() ...
随机推荐
- golang csv,xls,xlsx
要用到的包: "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform ...
- 转:copy initialization
转自: http://en.cppreference.com/w/cpp/language/copy_initialization copy initialization C++ C++ la ...
- go语言实战向导
版权声明:本文由魏佳原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/173 来源:腾云阁 https://www.qclou ...
- 【CodeVS 1038】一元三次方程
题意 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程. 给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的 ...
- webstorm搭建node服务器
前言,搭建服务器,必须有node.js环境(吐槽:本来就是用node搭建的(⊙o⊙)…) 下载node.js 网址 https://nodejs.org/en/ 先新建项目: 这里选择Node.js ...
- selenium+python笔记8
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 定制浏览器 """ imp ...
- 《Java程序设计》第三周学习总结
20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...
- struts2在pom.xml中的配置
<dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifac ...
- cf(#div1 B. Dreamoon and Sets)(数论)
B. Dreamoon and Sets time limit per test 1 second memory limit per test 256 megabytes input standard ...
- android:ems
<EditText android:id="@+id/qq_number" android:layout_width="wrap_content" and ...