Struts2技术解析:数据流、拦截器与静态URL转换
需积分: 9 5 浏览量
更新于2024-07-31
收藏 599KB PPTX 举报
"struts2牛人分享PPT"
在Struts2框架中,开发者们经常讨论的核心概念包括静态URL和动态URL、数据流图、上下文、配置文件、Action、值堆栈、拦截器和校验器。这些知识点是理解和应用Struts2的基础。
1. 静态URL与动态URL:
静态URL看起来像是纯HTML页面的链接,如`http://hangzhou.koubei.com/store/detail--storeId-f8979fe320a9436a8937390bac2aa04c`,它们不包含任何查询参数,更易于被搜索引擎抓取和优化。动态URL则带有查询参数,如`http://hangzhou.koubei.com/store/detail.html?city=2595&storeId=f8979fe320a9436a8937390bac2aa04c`,通常用于传递数据。Struts2允许将动态URL转换为静态,以提升网站性能。这可以通过配置`staticize.rules.xml`和`config.properties`文件实现。例如,设置`staticize.needprocess=true`并指定`staticize.rules.files`。
2. Struts数据流图:
数据流图描绘了用户请求如何在Struts2框架中从客户端到服务器端,再返回到客户端的过程。它包括了从HTTP请求到Action,再到结果视图的整个生命周期。
3. 上下文(Context):
在Struts2中,ActionContext是一个关键组件,它是一个线程安全的Map,存储了请求的参数、会话数据以及ServletContext等信息。可以使用`ActionContext.getContext()`获取上下文,并通过它访问请求和会话数据。另外,ServletActionContext是ActionContext的扩展,提供了直接与JavaServlet相关的对象访问功能,如`ServletActionContext.getRequest().getSession()`。
4. Struts配置文件:
Struts2的配置文件(通常为struts.xml)定义了Action、结果类型、拦截器栈等。它用于映射请求到特定的Action,配置结果视图以及定义处理请求的拦截器顺序。
5. Action:
Action是Struts2的核心,它是业务逻辑的载体。当用户发送请求时,Struts2会根据配置文件找到相应的Action来处理请求。
6. 值堆栈(Value Stack):
值堆栈是Struts2中的一个重要概念,它是一个存储Action实例和OGNL表达式可以访问的对象的数据结构。Action实例被放在值堆栈的顶部,可以直接通过OGNL表达式进行访问和修改。
7. 拦截器(Interceptors):
拦截器是Struts2处理请求前后的处理逻辑。它们按照预定义的顺序执行,可以用来实现日志记录、权限验证、数据校验等功能。
8. 校验器(Validators):
校验器用于验证用户输入数据的正确性和完整性。Struts2支持自定义校验规则,可以对Action的属性进行校验,确保数据的质量。
9. OGNL(Object-Graph Navigation Language):
OGNL是一种强大的表达式语言,用于在Java对象图中导航和操作数据。在Struts2中,它广泛用于视图层,如JSP页面,允许开发者直接访问Action属性,如`<s:property value="user.username"/>`。
通过理解并熟练掌握这些概念,开发者能够更好地构建和维护基于Struts2的Web应用程序。
2011-09-09 上传
2017-09-11 上传
2011-04-18 上传
2010-03-04 上传
2010-12-12 上传
2011-10-30 上传
Sapphire_aling
- 粉丝: 41
- 资源: 9
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍