Struts2中获取servlet API的几种方式
struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大。这给我们在使用servlet 纯java代码写项目的时候带来了福音。但是一般来说,我们的项目不到一定规模并不需要框架的。通常功能模块和系统架构复杂的时候会少不了框架的,如果没有框架,我们写的项目和代码会复杂很多,而且扩展性也会大大降低,代码审查效率也会降低。如下代码供大家参考,主要是说明在使用struts2的时候如何获取servlet API,大家可以试着对比一下不用struts2的时候的所写的servelte,本人对框架的理解有限,如有不当之处,还请各位指教。
/*
* 第一种
* 此种获取servlet API的方式常用,很方便,但是会与servlet API耦合
*/
ServletContext context=ServletActionContext.getServletContext();
context.getAttribute("a");
HttpServletRequest request=ServletActionContext.getRequest();
request.getSession().setAttribute("b", "b"); /*
* 1
*/ ActionContext ac=ActionContext.getContext();
//获取请求参数,
Map<String, Object> parameters = ac.getParameters();
//该返回值类型实际上是一个String[]数组类型
String[] str = (String[]) parameters.get("uname");
System.out.println(str[0]);//获取到的数组第一个下标元素即为当前要获取的请求参数的值 /*
* 2
*/ //获取request,在request中存取数据
ac.put("uname", "uname");//等同于servlet中的request.setAttribute("uname","uname");
//获取arr中的数据,返回类型为Object类型,强转为String类型即可
String arr = (String) ac.get("uname");//等同于servlet中的request.getArribute("uname");
System.out.println(arr);//输出arr的值 //在el表达式中可以这样取值
// ${requestScope.uname} /*
* 3
*/ //获取session,在session中存取数据
Map<String, Object> session = ac.getSession();
//在session中存入数据
ac.put("sessionName", "sessionValue");//等同于session.setArribute("sessionName","sessionValue");
//回去session中的数据,返回类型为Object类型,强转为String类型即可
String string = (String) ac.get("sessionName");//等同于session.getArribute("sessionName","sessionValue");
//在el表达式中可以这样取值
// ${sessionScope.sesssionName} /*
* 4
*/ //在application中存取数据
Map<String, Object> application = ac.getApplication();
//在application中存入数据
application.put("action", "action");//等同于application.setArribute("application","application");
//在application中获取数据
String appValue= (String) ac.get("application");//等同于application.getArribute("application","application");
//在el表达式中可以这样取值
// ${sessionApplication.application}
Struts2中获取servlet API的几种方式的更多相关文章
- [技巧篇]08.Struts2拦截器中获取Servlet API方法
讲课中遇到的解决Session拦截器的后腿问题,还有如何在拦截器中获取Servlet API,这里留一个备注,方便学生查找
- 在Action中获取servlet API
Struts2的Action组件是不依赖servlet API 的.那么当你在action中的业务需要处理HttpServletRequest和HttpServletResponse的时候(比如要对响 ...
- Struts2中使用Servlet API步骤
Struts2中使用Servlet API步骤 Action类中声明request等对象 Map<String, Object> request; 获得ActionContext实例 Ac ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- strus2中获取表单数据 两种方式 属性驱动 和模型驱动
strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值 * 如果一个属性在对象栈,在页面 ...
- struts2中访问servlet API
Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等.Struts ...
- 在SpringMVC中获取request对象的几种方式
1.最简单的方式(注解法) @Autowired private HttpServletRequest request; 2.最麻烦的方法 a. 在web.xml中配置一个监听 <listene ...
- Struts2访问Servlet API的三种方式
有时我们需要用到Request, Response, Session,Page, ServletContext这些我们以前常用的对象,那么在Struts2中怎么样使用到这些对象呢,通常有三种方式. * ...
- Struts2访问Servlet API的几种方式
struts2提供了三种方式访问servlet API:大致分为两类 1. ActionContext: public static ActionContext getContext() :获得当前 ...
随机推荐
- 【译】RabbitMQ:发布-订阅(Publish/Subscribe)
在前一篇教程中,我们创建了一个工作队列,我们假设在工作队列后的每一个任务都只被调度给一个消费者.在这一部分,我们将做一些完全不一样的事情,调度同一条消息给多个消费者,也就是有名的“发布-订阅”模式.为 ...
- AFN中的PATCH 和 DELETE 请求方式
- (nullable NSURLSessionDataTask *)PATCH:(NSString *)URLString parameters:(nullable id)parameters su ...
- SVM学习笔记(二):什么是交叉验证
交叉验证:拟合的好,同时预测也要准确 我们以K折交叉验证(k-folded cross validation)来说明它的具体步骤.{A1,A2,A3,A4,A5,A6,A7,A8,A9} 为了简化,取 ...
- new(C# 参考)
在 C# 中,new 关键字可用作运算符.修饰符或约束. new 运算符 用于创建对象和调用构造函数. new 修饰符 用于隐藏基类中被继承的成员. new 约束 用于在泛型声明中约束可能用作类型参数 ...
- WCF use ProtoBuf
ProtoBuf, 比起xml和json, 传输的数据里面没有自描述标签, 而且是基于二进制的, 所以有着超高的传输效率, 据牛人张善友的描述, 可以替代WCF的自带的编码方案, 效率有极大的提升. ...
- js分秒必争
将函数和对象合写在一起时,函数就变成了“方法”(method): //当函数赋值给对象的属性,我们称之为 //方法.所有的JavaScript的对象都含有方法 var a=[]; //创 ...
- css实现并列效果
<a href="#" class="mj-picList"> <div class="mj-picList-pic" s ...
- JAVA网络编程
网络技术基础 OSI模型 应用层-表示层-会话层-传输层-网络层-数据链路层-物理层 TCP/IP分层模型 应用层-传输层-网络互联层-网络接口层Socket(套接字) TCP套接字编程 Serv ...
- NopCommerce 框架系列(一)
今天,终于抽出时间来写写博文,也希望自己能养成写博文的好习惯,大神勿喷. 我从NopCommerce官网上下载了源码,以便自己学习研究,如有需要下载源码的朋友,请点击链接: http://www.no ...
- V8Sharp的中文乱码问题解决
V8是一个开源的javascript引擎,到现在为止堪称为是性能最好最稳定的javascript.因此还诞生了一个基于此引擎的服务端开发框架:Node.js.由此可见此引擎的牛逼之处.由于打算在后续项 ...