Struts2是Java Web开发中的一款经典MVC框架,它为开发者提供了强大的控制层解决方案,极大地简化了基于Java的企业级应用开发。本学习笔记将详细阐述Struts2的核心概念、发展历程、使用步骤以及OGNL技术。
一、Struts2概述
1.1 为什么要用Struts
在传统的JSP开发中,模型与视图、控制器的耦合度较高,导致代码维护困难。Struts2引入了MVC设计模式,提高了代码组织结构,降低了组件间的依赖,使得系统更易于扩展和维护。
1.2 什么是MVC
MVC(Model-View-Controller)是一种软件设计模式,将业务逻辑(Model)、用户界面(View)和应用程序控制流程(Controller)分离,提高了代码的可读性和可维护性。
1.3 JSP Model 1 和 JSP Model 2
JSP Model 1中,JSP同时承担了视图和控制器的角色,导致代码混杂,不易维护。而JSP Model 2引入了Servlet作为控制器,将业务逻辑与视图分离,但仍有改进空间。Struts2在此基础上进一步优化,实现了更完善的MVC架构。
1.4 Struts2发展史
Struts2是Struts1的升级版,由Struts1和WebWork框架合并而成,提供了更丰富的功能和更好的性能。
1.5 衡量一个框架的标准
一个好的框架应该具有易用性、灵活性、可扩展性、社区支持和文档完善等特点。Struts2因其强大的功能和广泛的社区支持,成为Java Web开发的重要选择。
1.6 Struts2使用步骤
使用Struts2通常包括配置struts.xml文件、创建Action类、编写JSP页面、添加依赖等步骤。
1.7 struts.xml内容详解
struts.xml是Struts2的核心配置文件,定义了Action、结果类型、拦截器等信息,是整个应用程序的路由中心。
1.8 Struts2提供的方便之处
Struts2提供了一系列内置拦截器、标签库和OGNL表达式语言,简化了开发过程,增强了异常处理和国际化支持。
1.9 案例:简单登录(使用Struts2)
通过创建Action类、配置struts.xml并设计JSP页面,实现用户登录功能,展示了Struts2的流程控制和数据传递。
1.10 案例:修改1.6、1.9案例使用户不能绕过前端控制器
通过设置Filter或调整配置,确保所有请求都经过Struts2的前端控制器,增强安全性。
1.11 NetCTOSS项目:显示资费列表
在一个实际项目中,如何利用Struts2展示数据库中的资费列表,涉及Action、DAO、Service层的设计。
1.12 NetCTOSS项目:资费列表分页显示
进一步扩展,实现列表的分页功能,涉及分页逻辑和Struts2的参数传递。
二、OGNL技术
2.1 什么是OGNL
OGNL(Object-Graph Navigation Language)是Struts2中的表达式语言,用于访问和操作对象属性,支持复杂的数据绑定和表达式计算。
2.2 OGNL基本语法
学习OGNL的变量引用、方法调用、集合操作、条件判断和循环等基础语法。
2.3 OGNL在Struts2中的应用
OGNL在Struts2中的作用主要体现在Action到JSP的数据传递、动态方法调用和表单回显等方面,提高了视图层的表达能力。
2.4 OGNL安全问题
虽然OGNL提供了强大的功能,但也存在安全风险,如OGNL注入。开发者应了解并防范这些风险,确保应用安全。
2.5 OGNL最佳实践
分享如何有效利用OGNL提升开发效率,同时遵循最佳实践,避免潜在的安全隐患。
通过深入学习Struts2的各个知识点,开发者可以熟练掌握这一框架,构建高效稳定的Web应用。同时,了解并掌握OGNL技术,将有助于提高应用的灵活性和表现力。在实践中不断探索和优化,才能更好地利用Struts2应对各种开发挑战。