![](https://csdnimg.cn/release/download_crawler_static/86390629/bg5.jpg)
* 一对多集合使用 Bag,多对多集合使用 Set
* 继承类使用显式多态
* 表字段要少,表关联不要怕多,有二级缓存撑腰
Struts 工作机制?为什么要使用 Struts?
工作机制:
Struts 的工作流程:
在 web 应用启动时就会加载初始化 ActionServlet,ActionServlet 从
struts-config.xml 文件中读取配置信息,把它们存放到各种配置对象当
ActionServlet 接收到一个客户请求时,将执行如下流程.
(1)检索和用户请求匹配的 ActionMapping 实例,如果不存在,就返回请求路径无
效信息;
(2)如果 ActionForm 实例不存在,就创建一个 ActionForm 对象,把客户提交的表
单数据保存到 ActionForm 对象中;
(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用 ActionForm 的
validate()方法;
(4)如果 ActionForm 的 validate()方法返回 null 或返回一个不包含
ActionMessage 的 ActuibErrors 对象, 就表示表单验证成功;
(5)ActionServlet 根据 ActionMapping 所包含的映射信息决定将请求转发给哪
个 Action,如果相应的 Action 实例不存在,就先创建这个实例,然后调用 Action
的 execute()方法;
(6)Action 的 execute()方法返回一个 ActionForward 对象,ActionServlet 在把
客户请求转发给 ActionForward 对象指向的 JSP 组件;
(7)ActionForward 对象指向 JSP 组件生成动态网页,返回给客户;
为什么要用:
JSP、Servlet、JavaBean 技术的出现给我们构建强大的企业应用系统提供了可
能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、
一个把这些技术组织起来的规则,这就是框架,Struts 便应运而生。
基于 Struts 开发的应用由 3 类组件构成:控制器组件、模型组件、视图组件
Struts 的 validate 框架是如何验证的?
在 struts 配置文件中配置具体的错误提示,再在 FormBean 中的 validate()方
法具体调用。
说下 Struts 的设计模式?
MVC 模式: web 应用程序启动时就会加载并初始化 ActionServler。用户提交表单时,一个配
置好的 ActionForm 对象被创建,并被填入表单相应的数据,ActionServler 根据
Struts-config.xml 文件配置好的设置决定是否需要表单验证,如果需要就调用 ActionForm 的
Validate()验证后选择将请求发送到哪个 Action,如果 Action 不存在,ActionServlet 会先
创建这个对象,然后调用 Action 的 execute()方法。Execute()从 ActionForm 对象中获
取数据,完成业务逻辑,返回一个 ActionForward 对象,ActionServlet 再把客户请求转发给