在 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 组件生成动态网页,返回给客户;
为什么要用:
1. JSP、Servlet、JavaBean 技术的出现给我们构建强大的企业应用系统提供了可能。但用
这些技术构建的系统非常的繁乱。
2. 基于 Struts 开发的应用:
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序
题目 10:为什么要用 spring?
Spring 是一个轻量级的 IOC 和 AOP 框架。
IOC(控制反转)意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这
称
为控制反转
AOP(面向切面),它将那些影响多个类的行为封装到可重用的模块中,面向对象是把问
题
从同类事物中抽象出来,面向切面是把问题从不同类问题中抽象出来。
1. hibernate 中 get()与 load()区别
请注意如果没有匹配的数据库记录,load()方法可能抛出无法恢复的异常(unrecoverable
exception)。 如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,
直到你调用该代理的某方法时才会去访问数据库。 若你希望在某对象中创建一个指向另一
个
对象的关联,又不想在从数据库中装载该对象时同时装载相关联的那个对象,那么这种操
- 1
- 2
前往页