通过ActionContext访问

public class TestActionContextAction {

    public String execute(){

        //获取 ActionContext 对象
ActionContext actionContext = ActionContext.getContext(); //application
Map<String, Object> applicationMap = actionContext.getApplication(); applicationMap.put("applicationKey", "applicationValue"); //获取属性
Object date = applicationMap.get("date");
System.out.println("date: " + date); //2. session
Map<String, Object> sessionMap = actionContext.getSession();
sessionMap.put("sessionKey", "sessionValue"); //清空session
/*if(sessionMap instanceof SessionMap){
SessionMap sm = (SessionMap) sessionMap;
sm.invalidate();
System.out.println("session 失效了. ");
}*/ //request
Map<String, Object> requestMap = (Map<String, Object>) actionContext.get("request");
requestMap.put("requestKey", "requestValue"); //parameter
Map<String, Parameter> parameters = actionContext.getParameters();
System.out.println(parameters.get("name")); return "success";
} }

Aware方式

public class TestAwareAction implements ApplicationAware, SessionAware, RequestAware
,ParameterAware{ public String execute(){ //1. 向 application 中加入一个属性: applicationKey2 - applicationValue2
application.put("applicationKey", "applicationValue"); //2. 从 application 中读取一个属性 date, 并打印.
System.out.println(application.get("date"));
request.put("requestKey", "requestValue"); session.put("sessionKey", "sessionValue"); return "success";
} public String save(){ return null;
} private Map<String, Object> application; @Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}
private Map<String, String[]> parameters;
@Override
public void setParameters(Map<String, String[]> parameters) {
this.parameters = parameters;
} private Map<String, Object> request;
@Override
public void setRequest(Map<String, Object> request) {
// TODO Auto-generated method stub
this.request = request; } private Map<String, Object> session;
@Override
public void setSession(Map<String, Object> session) {
// TODO Auto-generated method stub
this.session = session; } }
public class TestServletAwareAction implements ServletRequestAware,
ServletResponseAware,ServletContextAware{ public String execute() {
request.setAttribute("requestKey", "requestValue");
request.getSession().setAttribute("sessionKey", "sessionValue");
System.out.println(request.getParameter("name")); return "success";
} private ServletContext servletContext;
@Override
public void setServletContext(ServletContext servletContext) {
// TODO Auto-generated method stub
this.servletContext = servletContext;
} private HttpServletResponse response;
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response = response; } private HttpServletRequest request;
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request = request; } }

使用ServletActionContext

public class TestServletActionContext {
public String execute() {
ServletRequest request = ServletActionContext.getRequest();
ServletResponse response = ServletActionContext.getResponse();
ServletContext con = ServletActionContext.getServletContext();
String name = request.getParameter("name");
return "success";
}
}

jsp页面

application : ${applicationScope.applicationKey }
<br><br> session: ${sessionScope.sessionKey }
<br><br> request: ${requestScope.requestKey }
<br><br> parameters ${parameters.name }

struts.xml

 <action name="TestActionContext" class="com.TestActionContextAction">
<result name="success">/actionContext.jsp</result>
</action> <action name="TestAware" class="com.TestAwareAction">
<result>/aware.jsp</result>
</action>
<action name="TestServletAwareAction"
class="com.TestServletAwareAction">
<result name="success">/aware.jsp</result>
</action>

struts2访问web资源的更多相关文章

  1. 2.struts2访问web资源(在struts2中获取session,request等等)

    什么是web资源:web资源就是指request,response,session,servlet的api 为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问we ...

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

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

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

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

  4. Struts2在Action中访问WEB资源

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

  5. Struts2 之 Action 类访问 WEB 资源

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

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

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

  7. 在Action 中访问web资源

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

  8. 在Firefox中通过AJAX跨域访问Web资源---

    一.解决在firefox中无法跨域访问的问题 AJAX从本质上讲就是命名用XMLHttpRequest组件来向服务端发送HTTP请求,请接收相应信息.至于成功接收到响应信息后的操作,就和普通的Web客 ...

  9. Struts2 访问web元素

    访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...

随机推荐

  1. SQL Merge 语法 单表查询

    --项目中需要用到Merg语法,于是去网上查了资料,发现竟然都是多表查询,问题是我只有一张表,于是我纳闷了,后来我灵机一动,就搞定了!--表名:t_login(登录表)--字段:f_userName( ...

  2. linux命令学习之:wc

    wc(Word Count)命令用来计算数字.利用wc指令我们可以计算文件的Byte数.字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据. 命令格式 wc ...

  3. Composer 安装以及使用方法

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. Linux 下安装 curl -sS https://getcomposer.org/ ...

  4. Linux磁盘分区与文件系统

    一 Linux磁盘分区与文件系统 在Linux中常见的操作系统有:ext2 ext3 ext4 xfs btrfs reiserfs等文件系统的作用主要是明确磁盘或分区上的文件存储方法以及数据结构,L ...

  5. linux小笔记

    1. 安装go并设置环境变量 Add /usr/local/go/bin to the PATH environment variable. You can do this by adding thi ...

  6. vs2017连接mysql以及问题汇总

    https://www.cnblogs.com/eye-like/p/8494355.html https://blog.csdn.net/u012658972/article/details/791 ...

  7. RDMA的基础概念

    一张图可以简单明确的说明,目前RDMA的几种技术的差别: RDMA是remote Direct memory access的简称,有几个最基本的特点: CPU offload kernel bypas ...

  8. holiday(假期)_题解

    holiday(假期) —— 一道妙题(codevs3622)   Description 经过几个月辛勤的工作,FJ 决定让奶牛放假.假期可以在1…N 天内任意选择一段(需要连续),每一天都有一个享 ...

  9. Delphi,C语言互通脚本引擎研究

    基于大神akuma的脚本引擎. 下面是demo

  10. JSP指令(page include taglib)

    JSP指令指示JSP转换器如何翻译JSP页面到Servlet:JSP指令用来设置整个JSP页面相关的属性,如网页编码方式.脚本语言等 JSP指令的格式: <%@ directive attrib ...