Struts2 之 ActionContext获取WEB资源

1 后台代码

//0. 获取 ActionContext 对象
//ActionContext 是 Action 的上下文对象. 可以从中获取到当往 Action 需要的一切信息
//import com.opensymphony.xwork2.ActionContext;
ActionContext actionContext = ActionContext.getContext();

//1. 获取 application 对应的 Map, 并向其中添加一个属性
//通过调用 ActionContext 对象的 getApplication() 方法来获取 application 对象的 Map 对象
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");

System.out.println(sessionMap.getClass()); 

if(sessionMap instanceof SessionMap){
	SessionMap sm = (SessionMap) sessionMap;
	sm.invalidate();
	System.out.println("session 失效了. ");
}

//3. request* 
//ActionContext 中并没有提供 getRequest 方法来获取 request 对应的 Map
//需要手工调用 get() 方法, 传入 request 字符串来获取. 
Map<String, Object> requestMap = (Map<String, Object>) actionContext.get("request");
requestMap.put("requestKey", "requestValue");

//4. 获取请求参数对应的 Map, 并获取指定的参数值. 
//键: 请求参数的名字, 值: 请求参数的值对应的字符串数组
//注意: 1. getParameters 的返回值为在 Map<String, Object>, 而不是 Map<String, String[]>
//     2. parameters 这个 Map 只能读, 不能写入数据, 如果写入不出错, 但也不起作用!
Map<String, Object> parameters = actionContext.getParameters();
System.out.println(((String[])parameters.get("name"))[0]);

parameters.put("age", 100);

2 前台代码

<body>

	<h4>Test ActionContext Page</h4>

	application : ${applicationScope.applicationKey }
	<br><br>

	session: ${sessionScope.sessionKey }
	<br><br>

	request: ${requestScope.requestKey }
	<br><br>

	age: ${parameters.age }

</body>
时间: 2024-10-29 19:09:53

Struts2 之 ActionContext获取WEB资源的相关文章

尚硅谷公开课--struts2--3--struts2中获取web资源的几种方式

在struts2中,可以在JavaBean类中写公用的返回值为String类型的方法来响应页面上的请求,也可以在此方法中获取web资源,如:request,application,session,parameters等. 一.通过ActionContext获取 步骤: 1.获取ActionContext对象 通过ActionContext.getContext()获取一个ActionContext的实例 2.获取web资源对应胡Map 此Map类型为Map<String,Object>.获取方

Struts2获取web资源的几种方式

1.通过ActionContext直接获取 1 public testAction extends ActionSupport { 2 private Map request; 3 private Map session; 4 private Map application; 5 public testAction(){ 6 request = (Map)ActionContext.getContext().get("request"); 7 session = ActionConte

Action类中通过ServlexxxAware接口的方式来获取来获取web资源

1. 获取方式如下: package com.xuzhiwen.test; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.strut

Action类中通过ServletActionContext来获取web资源

1 . 获取方法如下: package com.xuzhiwen.test; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; public class ServletAction { public Strin

Struts2 Web 资源获取的四种方式

Struts2 Web 资源获取一个有四种方式,两个大类 拦截器获取 Web 资源模式 静态对象获取 Web 资源模式 第一种:实现ServletRequestAware.ServletResponseAware.ServletContextAware接口 struts.xml <action name="FirstAction" class="Action.FirstAction"> <result name="success"

Struts2:在 Action 中访问 WEB 资源

1.什么是 WEB 资源? HttpServletRequest.HttpSession.ServletContext 等原生的 Servlet API. 2.为什么访问 WEB 资源? B/S 的应用的 Controller 中必然需要访问 WEB 资源(向域对象中读写属性.读写Cookie.获取 realPath 等) 3.如何访问? 1).和Servlet API 解耦的方式:只能访问有限的 Servlet API 对象,且只能访问有限的方法.(使用 ActionContext .实现 X

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

1.什么WEB资源? HttpServletRequest,HttpServletRespone,HttpApplication,ServletContext,HttpSession等原生ServletAPI. 2.在Struts2中为什么要访问WEB资源? B/S应用中的Controller必然会有场景需要访问WEB资源:向域对象中读写属性,读取Cookie,获取realPath等. 3.在Struts2中如何访问WEB资源? a)和ServletAPI解耦的方式:只能有限的ServletAP

Web资源获取

1.拦截器获取 Web 资源模式 2.静态对象获取 Web 资源模式 1.拦截器获取 Web 资源模式: (1)使用Struts2 Aware拦截器 index.jsp表单: <body> <form action="<%=path %>/firstAction" method="post"> 姓名:<input type="text" name="name"><br>

J2EE之普通类加载web资源文件的方法

在WEB中普通类并不能像Servlet那样通过this.getServletContext().getResourceAsStream()获取web资源,需要通过类加载器加载,这里有两种方式,这两种方式是有区别的,下载咱们一起来看一下吧. 方法1. public class UserDao { public void connect() throws IOException { method1(); } private void method1() throws IOException { In