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的更多相关文章

  1. Action访问Servlet的API

    Action访问Servlet的API_,主要访问如下: 1.>获取request对象 2.>获取请求参数 3.>获取response对象,可用于传递cookie 3.>获取作 ...

  2. struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

    Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...

  3. struts2的action访问servlet API的三种方法

    学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...

  4. Struts 2读书笔记-----Action访问Servlet API

    Action访问Servlet API Struts2中的Action并没有和任何Servlet API耦合,这样框架更具灵活性,更易测试. 对于Web应用的控制器而言,不访问ServletAPI是几 ...

  5. 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

    Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...

  6. Action访问Servlet API的三种方法

    一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...

  7. Struts2(七) Struts2访问Servlet的API

    当接受表单参数,向页面保持数据时.要用到Struts访问Servlet 的API .下面只做参考,有错误或不同意见可以发送邮箱2440867831@qq.com  .建议大家看struts文档,源代码 ...

  8. struts2学习笔记(四)——访问Servlet的API&结果跳转&数据封装

    一.Struts2访问Servlet的API 前面已经对Struts2的流程执行完成了,但是如果表单中有参数如何进行接收?又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习Struts ...

  9. (转)Struts2访问Servlet的API及......

    http://blog.csdn.net/yerenyuan_pku/article/details/67315598 Struts2访问Servlet的API 前面已经对Struts2的流程已经执行 ...

随机推荐

  1. docker 入门 (一)重要概念介绍

    序 之前一直想学一下docker,但是基本看完就忘记了,下次用还是要再翻一下教程. 最近项目要用,连续用了一段时间,就熟练了,基本的使用以及概念都记住了. 趁现在还刚入门,就把入门一些容易遇到的问题记 ...

  2. mysql 基本的操作数据库命令

    注意:命令操作都是分号结尾 1 .连接mysql: mysql -u  用户名   -p 密码 2.展示所有数据库: show  databases; 3.进入数据库: use   数据库名字; 4. ...

  3. 微信下载app需要点击右上角在浏览器中打开下载的问题

    很多朋友是不是遇到过这样的问题,自家的app通过微信推广没办法直接下载,而是需要通过一个遮罩层来提示用户下载. 点击下载按钮提示点击右上角在浏览器中打开 这样的方式下载一个app是不是需要点击下载按钮 ...

  4. 在全志V3/V3s和索智S3/S3L上调试32MB NorFlash

    选取MX25L25635F作为调试对象,其他型号的NorFlash开发调试原理基本一致.为了使V3/V3s/S3/S3L识别32MB NorFlash并正常工作,主要针对以下三个部分进行开发和调试.下 ...

  5. The Road to learn React书籍学习笔记(第二章)

    The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...

  6. 2015521 实验四 Android程序设计

    <JAVA程序设计> 20155214 实验四 Android程序设计 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组件.布局管 ...

  7. 20155214 2016-2017-2 《Java程序设计》第4周学习总结

    20155214 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 Chapter6 父类就是将多个类的相同代码提升(Pull Up) 子类继承父类会继承到pr ...

  8. 20145234黄斐《网络对抗技术》实验五,MSF基础应用

    MSF的六种模块 渗透攻击模块(Exploit Modules)渗透攻击是指由攻击者或渗透测试者利用一个系统.应用或服务中的==安全漏洞==,所进行的攻击行为. 辅助模块(Auxiliary Modu ...

  9. 北京Uber优步司机奖励政策(4月13日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. IDEA 运行报错 failed to create a child event loop

    背景 在IDEA中写了测试代码,但是运行的时候一直提示 java.lang.IllegalStateException: failed to create a child event loop ... ...