`
wanghaopk
  • 浏览: 47623 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts1的核心

 
阅读更多

1Struts1介绍:

Struts1ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。有3个重要组成部分:ActionActionFormActionForward对象。

 

2Struts1的程序运行流程

struts1的要点

当用户发送一个需要得到服务器处理的请求时,该请求被ActionServlet拦截到,ActionServlet将该请求转发给对应的业务逻辑控制器,业务逻辑控制器调用模型来处理用户请求;如果用户请求只希望能到URL资源,则由ActionServlet将被请求的资源转发给用户。

 

3Struts1程序流程中的MVC中的三个角色

Model部分——由底层的业务逻辑组件充当,封装了底层数据库访问、业务逻辑方法实现。可以是简单JavaBeanEJB组件、WebService组件。

View部分——采用JSP实现

Controller部分——由两个部分组成,

系统核心控制器:系统的ActionServlet;业务逻辑控制器:用户自己实现的Action实例。

 

4Struts1的缺陷

l         支持的表现层技术单一

l         Servlet API严重耦合,难于测试

l         代码严重依赖于Struts1 API,属于侵入式设计

 

5Struts1中的ActionForm

Struts1使用单独的ActionForm封装请求参数。结构上,ActionForm就是一个POJO,需要为用户的每个请求参数都提供了一个对应的属性,并为该属性设置相应的settergetter方法,但是必须继承Struts1ActionForm基类

 

6Struts1中的Action

Action就是用于处理用户请求的业务控制器。ActionServlet在转发用户请求时,会将请求参数封装成ActionForm实例,并将该ActionForm实例转发给Action实例。

原理——Action实例从ActionForm中取出用户请求参数,然后调用业务逻辑组件处理用户请求,并根据处理结果,调用不同的视图页面来呈现处理结果。并返回ActionMapping对象。

区别——在于Struts1 Actionexecute方法与Servlet API耦合,但是Struts2 Action类的execute方法无需与Servlet API耦合。

配置——在struts-config.xmlAction需要指定Action的实现类,以及Action处理请求的URL。同时配置该Action对应的ActionForm,每个ActionForm使用一个<form-bean>元素定义。定义Action<action>元素中通过name属性指定与此Action关联的ActionForm

 

7MVC模式

事件由控制器处理,控制器根据事件的类型改变模型或试图。把多个视图注册到同一个模型,当模型发生改变时,模型向所有注册过的视图发送通知,接下来,视图从对应的模型中获得信息,然后完成视图显示的更新。

特点

l         多个视图可以对应一个模型;

l         模型返回的数据与显示逻辑分离

l         应用被分隔为三层

l         控制层包含了用户请求权限的概念

l         MVC模式更符合软件工程化管理的精神

 

8、个人总结                                      

Login.jsp-struts-config.xml中的LoginFormpath对应的是LoginAction ->LoginAction的返回值success或是error来确定一个actionMapping,但是要由ActionForm来封装-》在ActionForm中的validate()来判断其是否有错误;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics