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的流程已经执行 ...
随机推荐
- ABAP术语-XML
XML 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/21/1115743.html The "eXtensible Markup ...
- laravel Eloquent ORM联合查询出现Class not found,就算在Moel中存在这个类
今天发现一个坑,在处理Eloquent ORM的联合查询时,一直报错Class 'AdminGroup' not found ,可是我的项目中明明存在这个类,如下 这是我的模型类: 它们的控制器方法: ...
- Python编程小坑
在Pycharm中编辑文本文件,如果使用\r\n会产生两个空行? exit("xxx),会导致Process finished with exit code 1,所以如果要输入信息然后退出, ...
- Java ThreadLocal 源代码分析
Java ThreadLocal 之前在写SSM项目的时候使用过一个叫PageHelper的插件 可以自动完成分页而不用手动写SQL limit 用起来大概是这样的 最开始的时候觉得很困惑,因为直接使 ...
- Go Web 使用工具
前端工具: sublime text3 下载:https://www.sublimetext.com/3 中文版设置:https://jingyan.baidu.com/article/9c69d48 ...
- Testing for diversifying selection for two clades with a background clade
在利用branch-site检测趋同进化的时候 .可以将各个趋同进化枝分别进行检测,分析的时候不去除某一趋同枝系 .在分析的时候,需要去除其他趋同枝系的影响 I have sequences of a ...
- 20155230 实验四《android程序设计》实验报告
20155230 实验四<Android程序设计>实验报告 一.安装Android Stuidio 二.从一个活动启动另一个活动 在启动活动的活动里添加如下语句即可 Intent inte ...
- WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定
原文:WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM ...
- High Water Mark 图示
+---- high water mark of newly created table | V +-------------------------------------------------- ...
- RHCSA-考前准备
1.考前准备 RHCSA classroom虚拟机和server虚拟机 将两台虚拟机切换到初始化快照 打开虚拟机电源,当出现提示时选择我已移动该虚拟机 系统密码: classroom: root As ...