Struts1.2入门知识

在这前的我们已经学习了Java WEB,我们已经知道Java WEB开发的两个模式Model1和Model2,其中Model2模式借鉴了一种MVC模式(模型、视图、控制),这个模式能够有效的将业务与视图分开,从而将开发人员与网页美工人员分离开,有利于分工合作,但Model2模式也有它致命的弱点,由于所有的用户请求都通过控制器来与后台业务交互,但每一个用户请求又不同,这样我们就必须为每一个请求写一个控制器(servlet),如果一旦业务庞大,就可能有很多的控制器,这样会给系统维护和扩展都带来巨大的不便,为了解决这一问题基于MVC模式的开源框架Struts悄然问世,在这个框架中我们所有的请求都到一个中央控制器(ActionServlet)统一处理,这样既有利于我们的维护工作,也增强了系统的扩展性。

 

  • Struts1.2初始化流程和具体工作流程

       初始化流程:struts最主要的是中央控制器(ActionServlet),它和其他Servlet一样,ActionServlet的加载取决于Servlet容器(WEB容器)来决定,容器根据配置文件(web.xml)的<load-on-startup>标签决定是在容器启动时加载还是第一次请求到来时加载。不管哪种方式,当ActionServlet加载时,ActionServlet加载并初始化Struts配置文件struts-config.xml,它会把每一个<action>标签的内容生成ActionMapping对象存放在内存中,对于每一个<form-bean>标签会生成ActionFormBean对象存放在内存中等等,最后加载并初始化消息文件到内存中。

 

       基本工作流程:当完成Struts初始化工作后,以下是一个请求到来时的工作流程。

          1.一个请求到来,在内存中找到与之匹配的ActionMapping对象,如果没有找到这提示请求路径错误信息,如果找到进入第二步;

          2.找到ActionMapping对象对应的formBean,并创建一个实例把请求信息填充到对象中;

          3.根据配置的validate属性决定是否进行表单验证,如果需要则执行formbean的validate方法,如果返回null或者不包含ActionMessage的ActionErrors对象,则表明验证通过,如果不通过则根据配置的input属性的值跳到相应的错误页面;

          4.通过验证后配置的映射对象并创建该Action对象,执行execute方法完成业务逻辑的操作,返回一个ActionForward对象,ActionServlet根据返回的ActionForward对象,生成动态页面并响应给客户端。

 

 

  • Struts1.2的几个知识点

          1.Struts1.2的初始化流程和工作流程;

          2.Struts1.2实质上应用了JavaEE的前端控制器模式,所有用户的请求都由这个控制器统一处理;

          3.Struts1.2在视图层有一些JSP组件和ActionFormBean来实现,控制器由ActionServlet和Action来完成,对于模型层Struts1.2没有对其实现,一般由javabean和EJB来完成;

          4.Struts标签如<bean:message>可以将消息文件中的文本显示在JSP页面,这样Struts1.2可以对国际化的实现;

          5.Struts1.2的核心配置文件struts-config.xml必须在web.xml配置文件中注册,因此struts-config.xml文件名是可以改动的。

 

      好了,这就是Struts1.2的一些入门知识点,主要是一些原理问题,最主要是弄清楚Struts1.2的工作原理,这里我没有给出Struts1.2的代码例子,大家可以在网上找找,还是用Struts1.2简单实现下用户登陆业务,熟悉熟悉其工作原理。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2013-01-14 21:03  一直向北  阅读(272)  评论(0编辑  收藏  举报