struts1 --servlet+mvc
hibernate --JDBC
spring
扩展内容:
struts2
JMail
Weblogic
EJB
工作流jBPM
jQuery
...
struts1框架:
1 框架:
针对某一类应用提供的通用解决方案。
作用:
提供给程序员一些基础代码(跟业务无关、实现较复杂的代码)
开发效率会提高-在代码框架搭建成功之后
先了解框架的核心思想
2 struts1的核心思想
基于MVC模式,用于web层的开源框架。
3 MVC模式:
view :显示层
作用:接受客户端用户的输入的数据
显示系统内部信息给客户端
技术:
html 构建页面显示信息
javaScript 对客户端的数据进行格式化校验
jstl 逻辑分支语句控制
<c:forEach>
<c:if>
el 获取数据并显示
参数 ${param.参数名}
属性 ${[**Scope.]属性名}
对象的相关信息 ${pageContext.request}
ajax 使用异步通信对象,在不刷新客户端页面的同时,访问服务器,并且局部更新客户端页面
control :控制层
作用:
****核心控制器:******
*截获所有的请求/响应
web.xml:
*.abc ===== ControllerServlet
[/dwr/* ==== DWRServlet]
根据请求信息查找映射文件,找到其对应的真正处理类路径
映射文件config.xml
* ==== Servlet类路径
*调用真正的处理类
反射机制调用servlet中的服务方法
具体的web处理类
servlet:
接收客户端输入的数据,并封装对象(实体模型)
调用DAO(业务模型)进行持久化处理
model :模型层
作用:实体模型
实体类----表结构
业务模型
DAO ----数据访问对象
4 mvc的优缺点:
优点:
显示和模型解耦和
多个显示可以共用一个模型
系统调用流程易于管理和维护
缺点:
搭建框架导致代码量增大
核心控制器类导致调用的效率降低
5 mvc的分类:
model 1:
jsp+javaBean
model 2:
jsp+servlet+javaBean
6 struts的实现:
view
html
javaScript
jstl
el
struts标签 --功能扩展
control
控制器类 --ActionServlet
核心配置文件 --struts-config.xml
具体web处理类 --Action
model
没有任何实现
7 struts编写流程
struts-config.xml文件首先在容器启动时,即被解析封装为ActionMapping对象
ActionMapping.findForward("逻辑名称"):ActionForward;
ActionForward<===>request.getRequestDsiapcther("跳转路径").forward(req,resp);
页面--跳转----》页面
违背了MVC的核心思想
解决:
编写一个共用处理类Action
由Action转发系统内部资源
struts解决:
-------------------
ForwardAction
-------------------
<action path="/addPage" type="org.apache.struts.actions.ForwardAction" parameter="/WEB-INF/page/add.jsp"></action>
客户端页面中参数的获取及类型转换
ActionForm
接受客户端页面form表单中的控件值
index.jsp----->ForwardAction---->add.jsp
add.jsp---/add.do--->AddForm---->AddAction
-------------------
forBean
-------------------
*FormBean的书写规则:
1 必须继承ActionForm
2 必须提供和页面form表单中控件名一样的属性
3 类型可以自由设定
FormBean的配置方式:
<form-beans>
<form-bean name="formBean的逻辑名称" type="formBean的具体类路径">
</form-beans>
<action-mappings>
<action path="客户端发出请求" type="Action的类路径" name="formBean的逻辑名称">
</action-mappings>
add.do--->web.xml--->ActionServlet---->struts-config.xml---><action path...
---><action name属性 ---><form-bean name属性 --><form-bean type属性--><action type属性