Struts2技术解析:数据流、拦截器与静态URL转换

需积分: 9 2 下载量 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应用程序。