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() :获得当前 ...
随机推荐
- 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s
总体流程: 在开发机开发代码后提交到gitlab 之后通过webhook插件触发jenkins进行构建,jenkins将代码打成docker镜像,push到docker-registry 之后将在k8 ...
- 深度学习(dropout)
other_techniques_for_regularization 随手翻译,略作参考,禁止转载 www.cnblogs.com/santian/p/5457412.html Dropout: D ...
- lnode满,维护记录
df 17% 正常 df -i 100% inode耗尽. | uniq -c 查出占用lnode最大的目录是 /var/spool/exim4/input 居然有15W多个小文件 exim4是邮件 ...
- ExtJs 获取Dom对象
对象指页面上的某一部分,如:Input等.我觉得在EXT JS中会有三类基本对象,htmlelement , EXT.Element和CompositeElement .分别解释一下: htmlele ...
- iOS的后台任务
翻译自:http://www.raywenderlich.com/29948/backgrounding-for-ios (代码部分若乱码,请移步原链接拷贝) 自ios4开始,用户点击home按钮时, ...
- ue4 FPaths各目录
GetWrappedLaunchDir() 启动时的工作目录,因为马上要把工作目录改为下面所说的exe所在目录,所以会先把当前的缓存起来 FPlatformProcess::BaseDir() 这个是 ...
- poj1014(还需要改动)
#include <stdio.h> int n[6]; int main() { freopen("in.txt","r",stdin); int ...
- ATL 获取flash信息
// This goes past the ATL includes #import "C:/WINDOWS/system32/Macromed/Flash/Flash9e.ocx" ...
- CentOS 7 关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙 直接关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable ...
- 今个忽然晓得,原来radio不是普通去获取值的!
今日,写js校验.对于不太会的,总是陌生的.碰见radio的取值,习惯的用document.getElementsByName("")[0].value去获取值,却忘记了radio ...