什么是web资源:web资源就是指request,response,session,servlet的api

为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问web资源,向作用域读写数据。。。。。。等等

怎么访问web资源:

  和servlet解耦的方式访问:有限的访问servlet的 api对象,有限的方法

    使用ActionContext去访问

    实现XXXAware这个接口

  和servlet耦合的方式访问:可以访问更多(全部)的servlet的API

    使用ServletActionContext去访问

    实现ServletXXXAware这个接口

    

  1.解耦合和方式使用ActionContext获取web资源 

/**
* 获取Application作用域
* @return
*/
public String execute(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//得到封装过的application
Map<String, Object> application=actionContext.getApplication();
//把数据放到application的作用域
application.put("name", "小白");
return "success";
}
/**
* 获取session作用域
* @return
*/
public String execute2(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//得到封装过的session
Map<String, Object> session=actionContext.getSession();
//把数据放到session的作用域
session.put("name2", "小白2");
return "success";
}
/**
* 获取Request作用域
* @return
*/
public String execute3(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//得到封装过的request
Map<String, Object> request=(Map<String, Object>) actionContext.get("request");
//把数据放到request的作用域
request.put("name3", "小白3");
return "success";
} /**
* 获取请求参数(不推荐使用,Struts会封装)
* @return
*/
public String params(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//获取请求参数,得到参数的对象
Map<String, Object> params= actionContext.getParameters();
String name=((String[])params.get("name"))[0];
String sex=((String[])params.get("sex"))[0];
System.out.println(name+":"+sex);
return "success";
}

  2.解耦合和方式使用XXXAware获取web资源

/**
* 只要实现对应的ApplicationAware接口,或者SessionAware等就可以
* @author Administrator
*
*/
public class ApplicationDemo implements ApplicationAware{
Map<String, Object> application; public String execute(){
application.put("xx","xx");
return "success";
}
public void setApplication(Map<String, Object> application) {
this.application=application;
}
}

  3.耦合和方式使用ActionContext获取web资源(其他的使用方式类似)

    public String execute(){
//通过ServletActionContext可以获取需要的Servlet api相关的对象
HttpServletRequest request=ServletActionContext.getRequest();
String name =request.getParameter("name");
request.setAttribute("name", "小白");
HttpSession session= ServletActionContext.getRequest().getSession();
session.setAttribute("name2", "小白2");
return "success";
}

2.struts2访问web资源(在struts2中获取session,request等等)的更多相关文章

  1. struts2访问web资源

    通过ActionContext访问 public class TestActionContextAction { public String execute(){ //获取 ActionContext ...

  2. spring的普通类中获取session和request对像

    在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口 ...

  3. spring在普通类中获取session和request

    在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2 ...

  4. Struts2(四):在Action中如何访问Web资源

    1.什么WEB资源? HttpServletRequest,HttpServletRespone,HttpApplication,ServletContext,HttpSession等原生Servle ...

  5. [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. Struts2在Action中访问WEB资源

    什么是WEB资源? 这里所说的WEB资源是指:HttpServletRequest, HttpSession, ServletContext 等原生的 Servlet API. 为什么需要访问WEB资 ...

  7. Struts2 之 Action 类访问 WEB 资源

    接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所 ...

  8. Struts2学习第三课 访问Web资源

    1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Contr ...

  9. 在Action 中访问web资源

    1.什么是web资源: HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么要访问web资源? B/S应用的Contr ...

随机推荐

  1. OAF_开发系列25_实现OAF中Java类型并发程式开发oracle.apps.fnd.cp.request(概念)

    20150719 Created By BaoXinjian

  2. Java课程

    链接: http://pan.baidu.com/s/1kU2n3wz 密码: r88d (封装,继承,多态) 1.JDK的安装和配置 2.HelloWorld 3.基本概念 4.数据类型 5.程序控 ...

  3. POJ 2352 Stars 线段树 数星星

    转载自 http://www.cnblogs.com/fenshen371/archive/2013/07/25/3214927.html 题意:已知n个星星的坐标.每个星星都有一个等级,数值等于坐标 ...

  4. oracle数据库如何创建用户并授予角色

    目标:1.  创建角色test1_role,  授予 CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, CREATE T ...

  5. GDB 调试遇到??的问题

    今天总算解决了一个大的bug,爽! 我的程序crash,有了coredump文件,在Linux PC上用arm-linux-gdb debug it. The result is: #0  0x402 ...

  6. Unity3D 动画回调方法

    最近发现很多coder.在用Unity开发游戏的时候都需要一个需求就是..动画播到某一帧就要干什么事情.而且希望能得到回调. 在unity里面的window菜单有个.Animation工具.打开它.然 ...

  7. 模块化编程时,#include到底要放在哪里?

    结合我自己的经验,谈一谈模块化编程时#include应该出现的位置.总结起来大体有二条规则: 一.规则1:只包含必要的头文件 看下面这个模块: ===foo.c==== #include <st ...

  8. js访问xml

    从w3school中获取代码 <html> <head> <script type="text/javascript"> var xmlhttp ...

  9. 在线编辑器的使用总结(kindeditor , )

    1).kindedtor中让编辑框默认为“HTML代码/源代码”模式 [javascript] view plaincopyprint? <script> // 自定义插件 #1 Kind ...

  10. Struts2中使用OGNL

    链接:Struts标签库 OGNL(Object Graphic Navigatino Language) OGNL称为对象图导航语言.以一个对象为根(起点),通过OGNL可以访问与这个对象关联的其它 ...