2.struts2访问web资源(在struts2中获取session,request等等)
什么是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等等)的更多相关文章
- struts2访问web资源
通过ActionContext访问 public class TestActionContextAction { public String execute(){ //获取 ActionContext ...
- spring的普通类中获取session和request对像
在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口 ...
- spring在普通类中获取session和request
在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2 ...
- Struts2(四):在Action中如何访问Web资源
1.什么WEB资源? HttpServletRequest,HttpServletRespone,HttpApplication,ServletContext,HttpSession等原生Servle ...
- [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Struts2在Action中访问WEB资源
什么是WEB资源? 这里所说的WEB资源是指:HttpServletRequest, HttpSession, ServletContext 等原生的 Servlet API. 为什么需要访问WEB资 ...
- Struts2 之 Action 类访问 WEB 资源
接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所 ...
- Struts2学习第三课 访问Web资源
1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Contr ...
- 在Action 中访问web资源
1.什么是web资源: HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么要访问web资源? B/S应用的Contr ...
随机推荐
- 关于32位windows与4GB内存的那些事儿
参考:1 Physical Address Extensionzh.wikipedia.org/wiki/PAEen.wikipedia.org/wiki/Physical_Address_Exten ...
- PSP(11.2~11.9)
5号 类别c 内容c 开始时间s 结束e 中断I 净时间T GUI 学习QT视频 9:00 10:10 0m 70m 复习 软件工程 10:10 11:10 10 50m 复习 软件工程 14:20 ...
- c++指针与引用问题
本来是回答问题的,到这里做个笔记 *&L是指针的引用,实参是个指针.所以L是实参指针的别名,对别名L的修改,等于对实参的修改.*L是传值,你无法改变传过来的实参指针变量的值程序代码: #inc ...
- css 画基本图形
抄于http://dongtianee.sinaapp.com/demo9.html /******************************************************** ...
- The novaclient Python API
The novaclient Python API Usage First create a client instance with your credentials: >>> f ...
- C语言获得文件一行
C语言获得一行的数据还是比较麻烦的,这里讲一下几种曾经用过的方法. 第一种,是最笨的方法,就是一个一个字符的读取,也是最容易想到的方法.具体实现如下:void read_line(char l ...
- JAVA 判断Socket 远程端是否断开连接
最近在做项目的时候,遇到这样一个问题,如何判断 Socket 远程端连接是否关闭,如果关闭的话,就要重建连接Socket的类提供了一些已经封装好的方法, 如 isClosed().isConnect ...
- 洛谷P3370 【模板】字符串哈希
P3370 [模板]字符串哈希 143通过 483提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 看不出来,这题哪里是哈希了- 题目描述 如题,给定N个字符串(第i个 ...
- QTP安装连接Oracle数据库
之前学过一段时间QTP,之后便没用这个笨重的东东,为了以防忘记,再次记录下曾经连接数据库经历了几天才搞好的事情(虽然这个工具可能已经过时,但是国企一般都会使用的) 前提条件: 你已经安装好了QTP / ...
- x-ua-compatible的实践
前提: 在ie8中测试 页面头部含有<!DOCTYPE html> 结果: <meta http-equiv="x-ua-compatible" content= ...