action访问servlet的API并且获取到MAP或者httpServlet类型的application,session,request
public class testAction3 extends ActionSupport {
private Map<String,Object> request;
private Map<String,Object> session;
private Map<String,Object> application;
/**
* 构造函数,没有返回值
*/
public testAction3(){
this.request=(Map) ActionContext.getContext().get("request");
this.session=ActionContext.getContext().getSession();
this.application=ActionContext.getContext().getApplication();
}
@Override
public String execute(){
System.out.println("开始。。。。");
this.request.put("reqAttr","reqDirect");
this.session.put("sessionAttr", "sessionDirect");
this.application.put("appAttr", "appDirect");
return SUCCESS;
}
}
<body>
request:${reqAttr}<br>
session:${sessionAttr}<br>
application:${appAttr}<br>
------------------------------<br>
request:${requestScope.reqAttr}<br>
session:${sessionScope.sessionAttr}<br>
application:${applicationScope.appAttr}<br>
</body>

或者使用IoC方法:需要实现相应的接口
public class testAction3 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
private Map<String,Object> request;
private Map<String,Object> session;
private Map<String,Object> application;
@Override
public void setApplication(Map<String, Object> application) {
// TODO Auto-generated method stub
this.application=application;
}
@Override
public void setSession(Map<String, Object> session) {
// TODO Auto-generated method stub
this.session=session;
}
@Override
public void setRequest(Map<String, Object> request) {
// TODO Auto-generated method stub
this.request=request;
}
@Override
public String execute(){
System.out.println("开始。。。。");
this.request.put("reqAttr","reqDirect");
this.session.put("sessionAttr", "sessionDirect");
this.application.put("appAttr", "appDirect");
return SUCCESS;
}
}
二、获取http类型
public class testAction3 extends ActionSupport{
private HttpServletRequest request;
private HttpServletResponse response;
private HttpSession session;
private ServletContext application;
/**
* 获取
*/
public testAction3(){
this.request=ServletActionContext.getRequest();
this.response=ServletActionContext.getResponse();
this.session=this.request.getSession();
this.application=ServletActionContext.getServletContext();
}
@Override
public String execute() throws Exception{
System.out.println("开始。。。。");
this.request.setAttribute("reqAttr", "reqDirect");
this.application.setAttribute("appAttr", "applicationDirect");
this.session.setAttribute("sessionAttr", "sessionDirect");
// Ajax使用的时候可以用
// PrintWriter out=response.getWriter();
// out.print("response");
// out.flush();
// out.close();
// return null;
return SUCCESS;
}
}
或者用依赖注入方式:
public class testAction3 extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{
private HttpServletRequest request;
private HttpServletResponse response;
private HttpSession session;
private ServletContext application;
/**
* 获取
*/
@Override
public void setServletContext(ServletContext application) {
// TODO Auto-generated method stub
this.application=application;
}
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
}
@Override
public String execute() throws Exception{
this.session=this.request.getSession();//session是通过request获取,所以没有关于实现session的接口
System.out.println("开始。。。。");
this.request.setAttribute("reqAttr", "reqDirect");
this.application.setAttribute("appAttr", "applicationDirect");
this.session.setAttribute("sessionAttr", "sessionDirect");
return SUCCESS;
}
}
action访问servlet的API并且获取到MAP或者httpServlet类型的application,session,request的更多相关文章
- Action访问Servlet的API
Action访问Servlet的API_,主要访问如下: 1.>获取request对象 2.>获取请求参数 3.>获取response对象,可用于传递cookie 3.>获取作 ...
- struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...
- struts2的action访问servlet API的三种方法
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...
- Struts 2读书笔记-----Action访问Servlet API
Action访问Servlet API Struts2中的Action并没有和任何Servlet API耦合,这样框架更具灵活性,更易测试. 对于Web应用的控制器而言,不访问ServletAPI是几 ...
- 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...
- Action访问Servlet API的三种方法
一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...
- Struts2(七) Struts2访问Servlet的API
当接受表单参数,向页面保持数据时.要用到Struts访问Servlet 的API .下面只做参考,有错误或不同意见可以发送邮箱2440867831@qq.com .建议大家看struts文档,源代码 ...
- struts2学习笔记(四)——访问Servlet的API&结果跳转&数据封装
一.Struts2访问Servlet的API 前面已经对Struts2的流程执行完成了,但是如果表单中有参数如何进行接收?又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习Struts ...
- (转)Struts2访问Servlet的API及......
http://blog.csdn.net/yerenyuan_pku/article/details/67315598 Struts2访问Servlet的API 前面已经对Struts2的流程已经执行 ...
随机推荐
- mysql 常用的时间日期函数小结
本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now() :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...
- MySQL数据约束
定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束. 代码: 1.默认值 : default ' ' 作用:当用户对使用默认值的字段不插入值的时候,就使用默认值(自动填充). 注意: ...
- vue 创建项目的命令
1 cmd 创建项目 找到指定目录 vue create test 或 vue ui (可视化创建)推荐 ---------------------------------------- ...
- react中如何获取onclick事件调用元素的dom对象
今天终于有时间写博客了, 前几天项目有个需求,我感觉用dom操作兄弟元素实现比较方便,但是前端用的react框架不能用jquery的$(this)获取当前元素,查了好多资料和尝试后写下总结: 在HTM ...
- PHP读取excel表格,和导出表格
读取表格 public function excel(){ import("Common.Vendor.Excel.PHPExcel"); $filename="./fi ...
- 大数据:Map终结和Spill文件合并
当Mapper没有数据输入,mapper.run中的while循环会调用context.nextKeyValue就返回false,于是便返回到runNewMapper中,在这里程序会关闭输入通道和输出 ...
- 配置redis一直启动
1. 进入 DOS窗口 2. 在进入redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...
- Redis数据结构总结
Redis 字符串(String) SET runoobkey redis GET runoobkey Redis 哈希(Hash) Redis hash 是一个string类型的field和valu ...
- 20155211 实验三 敏捷开发与XP实践
20155211 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园. 实验步骤 (一)敏捷开发与XP 敏捷开发( ...
- noone is not in the sudoers file ubuntu
Login as root or su to get root prompt type visudo an editor will open find a line says root ALL=( ...