zoukankan      html  css  js  c++  java
  • 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简单实现下用户登陆业务,熟悉熟悉其工作原理。

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

  • 相关阅读:
    作业八
    作业七:用户体验设计案例分析
    作业六。合作编程
    作业五:需求分析
    作业四:结对编程2
    作业四:合作
    作业三:词频统计
    学习进度表
    java程序练习
    简单博客练习
  • 原文地址:https://www.cnblogs.com/shipeng22022/p/4614207.html
Copyright © 2011-2022 走看看