"Struts2.0教学内容,包括loginSuc.jsp页面展示不同scope中的数据以及Struts1.0的基本原理和缺点"
在Struts2.0教学中,`loginSuc.jsp`页面展示了如何访问不同范围内的数据,如`requestScope`,`sessionScope`和`applicationScope`。这些scope分别对应于HTTP请求生命周期的不同阶段,它们用来在不同的范围内存储和共享数据。
1. `requestScope`:这个范围的数据仅存在于当前HTTP请求中,当请求完成后,数据将被销毁。在`loginSuc.jsp`中,通过`${requestScope.req}`可以访问存储在此范围内的变量`req`。
2. `sessionScope`:数据在会话期间保持有效,直到会话结束或手动移除。在示例中,`${sessionScope.ses}`用于获取会话中的`ses`变量。
3. `applicationScope`:这是全局范围,数据在整个应用的生命周期内都有效,除非手动清除。`<%=application.getAttribute("app") %>`用于获取应用级别的`app`变量。
此外,文件还提到了使用`getAttribute`方法来获取scope中的数据,这与EL表达式(`${...}`)是等效的,都表明这些Map对象实际上存储在相应的请求范围内。
接下来,我们转向Struts1.0的基础知识:
Struts1.0是一个基于MVC(模型-视图-控制器)架构的Java Web框架,它简化了Web应用程序的开发。其核心组件包括`ActionForm`和`Action`,以及配置文件`struts-config.xml`。
- `ActionForm`:负责接收用户从页面提交的数据,并将其封装到Java对象中。
- `Action`:作为控制器,处理`ActionForm`中的数据,执行业务逻辑,并决定跳转到哪个JSP页面(视图)。
在`struts-config.xml`中,配置`form-beans`定义了表单bean,而`action-mappings`定义了与之关联的动作映射。例如,配置了一个名为`addForm`的`ActionForm`,类型为`web.form.AddForm`,并且配置了一个`Action`,名为`addForm`,类型为`web.action.AddAction`,该`Action`有两个forward,分别指向`input`和`result`页面。
然而,Struts1.0存在一些缺点,如:
- 表现层技术单一,仅支持JSP,不兼容FreeMarker或Velocity等更现代的技术。
- 与Servlet API高度耦合,使得测试变得困难,因为业务逻辑控制器大量使用了Servlet API,这使得代码对Web服务器有很强的依赖性。
这个教学内容涵盖了Struts2中如何访问不同范围的数据以及Struts1.0的基础架构和局限性,对于理解MVC框架和Web应用程序的开发流程具有重要意义。