Struts2 总结
来源:互联网 发布:狸窝音频转换器mac版 编辑:程序博客网 时间:2024/06/06 18:28
前言:此总结是观看佟刚老师的Struts2 视频总结的,之前看过另一老师将的视频,有点模糊,然后网上查了一下,很多人说这个视频同好的,然后自己去看,的确很好 视频链接
关于获得 Web 资源
以下是应该注意的地方 :
1. 所谓 WEB 资源是指,request,session,application,paraeters( 可以获得请求参数 ) 2. ActionContext 是 Action 的上下文,可以获的 Action 的一切所需要的信息3.获取web资源有以下两种 : 1. 由 ActionContext 获得 2. 实现 XxxAware 接口
一. 获得与 Servlet 无关的Web 资源
I. 由 ActionContext 获得
public class TestActionContext { /** 1. ActionContext 是 Action的上下文,可以得到一切Action需要的信息 2. 这个类TestActionContext 不用继承,或者是实现其他类 3. 需要注意的是,这里的得到requestMap,sessionMap,applicationMap 和并不是HttpServletRequest,HttpSession... 但是 这些map封装的是request,session,application..域对象里面的键和值(.attribute(key,value) ) 4. 注意 parametersMap 这个比较特殊,因为Servlet 里面并没有这个相对应的对象,这个map表示请求参数的键值对 uri?age=100, key=age,valeu=100 5. */ public String execute(){ // ActionContext 是 Action的上下文,可以得到一切Action需要的信息 ActionContext actionContext = ActionContext.getContext(); // 得到 // 获得application 对应的 map Map<String,Object> applicationMap = actionContext.getApplication(); applicationMap.put("applicationKey", "applicationValue"); // 得到session 对应的 map Map<String,Object> sessionMap = actionContext.getSession(); sessionMap.put("sessionKey", "sessionValue"); // 获得 request对象的方法比较特殊,需要由 Action 的上下文调用方法获得,注意此时所有的 request,session ,application 都不是 Servlet里面的 Map<String,Object> requestMap = (Map<String, Object>) actionContext.get("request"); requestMap.put("requestKey", "requestValue"); /** * actionContext.getParameters() 放回的是 Map<String,Object> 但实际上,Object 就是 String[]数组 * 1. parameters 对象写入的数据,读不出,所以仅用于读键的值 * 2. 注意其输出的时需要强转为 String[],然后按下标进行读取, * 3. 值为 Strig[] 数组的原因是,一个 key 可以对应多个值 */ Map<String ,Object> parameters = actionContext.getParameters(); // 得到请求参数的 map /** * 当访问 : http://localhost:8089/Struts02/testActionContext.action?age=100 * request - > null * parameters -> 100 * // 这里表名 parameters 表示对参数的读取操作 */ System.out.println("request : "+requestMap.get("name")); // 验证其输出的值,是否与 parameters 输出的相同 !! 验证表名不一致 System.out.println("parameters : "+((String[])parameters.get("age"))[0] ); // 通过请求参数读出键 return "success"; }}
II. 继承相对于的 XxxAware 接口
public class TestApplicationAware02 implements ApplicationAware,SessionAware,RequestAware,ParameterAware{// 可以同时 implements SessionAware,RequestAware,当一个类 /** * 1. 会自动赋值,由框架内部调用函数进行操作 * 2. 所以可以在 execute 里面直接进行上面的操作 */ private Map<String,Object> applicationMap; private Map<String,Object> sessionMap; private Map<String,Object> requestMap; private Map<String, String[]> parameters; public String execute(){ return "success"; } public void setApplication(Map<String, Object> arg0) { // TODO Auto-generated method stub applicationMap = arg0; } public void setSession(Map<String, Object> arg0) { // TODO Auto-generated method stub sessionMap = arg0; } public void setRequest(Map<String, Object> arg0) { requestMap = arg0; } public void setParameters(Map<String, String[]> arg0) { parameters = arg0; }}
二. 获得与 Servlet 相关的Web 资源
I. 利用 ServletActionContext 上下文获得
public class TesstHttpServlet { public String execute(){ /** * 1. 由 ServletActionContext 可以得到与 Servlet相关的所有对象 * 2, 可以得到 Servlet 的上下文 */ ServletContext servletContext = ServletActionContext.getServletContext(); HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = ServletActionContext.getRequest().getSession(); HttpServletResponse response = ServletActionContext.getResponse(); System.out.println(request); System.out.println(session); System.out.println(response); return "success"; }}
II. 实现 XxxAware 接口
public class TestServlet02 implements ServletContextAware,ServletRequestAware,ServletResponseAware { /* * 通过实现 ServletXxxAware 为 Struts2 为其注入需要的 Servlet 相关的对象 * ServletContextAware 注入 ServletContext * ServletRequestAware 注入 ServleHttpServletRequest * ServletResponseAware 注入 ServletHttpServletResponse */ private ServletContext servletContext; private HttpServletRequest req; private HttpServletResponse resp; public String execute(){ /** * 实现了 类的 aware 接口都能自动为其赋值 */ System.out.println(req); System.out.println(resp); System.out.println(servletContext); return "success"; } public void setServletContext(ServletContext servletContext) { // TODO Auto-generated method stub this.servletContext = servletContext; } public void setServletRequest(HttpServletRequest req) { // TODO Auto-generated method stub this.req = req; } public void setServletResponse(HttpServletResponse resp) { // TODO Auto-generated method stub this.resp = resp; }}
阅读全文
0 0
- [Struts2]Struts2学习总结
- 【Struts2框架】Struts2总结
- 【Struts2】Struts2要点总结
- struts2 总结
- Struts2总结
- struts2总结
- Struts2总结
- struts2总结
- struts2总结
- Struts2总结
- Struts2总结
- struts2 总结
- struts2总结
- struts2总结
- Struts2总结
- STRUTS2总结
- struts2 总结
- struts2总结
- 《Collaborative Deep Learning for Recommender Systems》阅读笔记
- Android开发学习中遇到的问题记录
- [Bug]官方HttpClient的一处Bug及解决办法
- 模拟电路
- 关于新版网易风云音乐(linux版)无法启动的问题>>>Failed to load module "overlay-scrollbar"
- Struts2 总结
- 黑白棋改进
- 我的第一个内核模块
- 【hdu2133】What day is it
- c中的操作符
- Codeforces Round #426 (Div. 2) The Useless Toy 数组环
- 纯真IP数据库解析Delphi D10.1下正常使用
- AUTOCAD学习笔记10:互补功率放大电路的绘制
- 煤球数目