zoukankan      html  css  js  c++  java
  • 【Struts】--Struts1工作原理

        Struts是一个开源的框架,通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

        Struts中主要的类有一下几种:

          ActionServlet:核心控制类,导航流,负责截取URL和分发,中央控制器
          ActionForm:收集表单数据
          Actiont:业务层控制器(和模型层打交道的桥梁),获得表单数据,调用业务逻辑,返回转向信息
          ActionFoward:包装了转向信息

        大致的流程图如下:

           


         下面用一个具体的实例分析Struts的工作流程:

            

         流程分析:

           1、首先客户端的请求以http方式发送到Tomcat服务器,通过创建httprequest和httpresponse调用ActionServlet
           2、ActionServlet是一个中央控制器,它会根据请求截取URL,然后通过URL读取struts-config.xml文件中的配置信息,将配置信息封装到ActionMapping中,同时将表单数据保存到ActionForm中。并将该对象传递给请求的对象Action
           3、Action可以根据传过来的ActionForm得到相应的数据,调用Model层。得到返回数据之后再返回到ActionServlet
           4、ActionServlet会返回到对应的视图


        使用struts和不是用struts的区别是什么?

      (1)采用struts框架实现servlet的统一控制。传统的servlet开发中每写一个servlet都要在配置文件中,这就导致了当servlet很多的时候我们所看到的配置文件凌乱不堪。难于管理。采用struts框架,所有符合规范的请求将会统一交给ActionServlet进行处理,在struts-config.xml文件中根据配置决定由那个RealAction进行处理。


      (2)在传统的servlet开发中,当处理完业务逻辑后具体的页面跳转是由每个servlet自己决定的,也就是说几乎每个servlet都有一条页面跳转代码,这样的话如果有N个servlet需要跳转到同一个页面,那相同的跳转语句需要重复写N次,更为重要的是如果后期需求变更,需要跳转到新的页面那么需要改动的代码也就有N次。采用struts框架能够解决这个问题,我们所需要做的仅仅是把跳转页置到<forward>标签中,需求变更的话只需改变配置文件即可。


      (3)数据采集。Servlet开发中数据的采集是servlet接收到request,采用getParameter()方法取得表单数据,并且不能实现格式的自动转换。如果采用struts框架,定义好ActionForm后,ActionServlet会自动将表单数据加载到相应的ActionForm中并且实现数据类型的自动转换。


         Struts是web前端开发的一个经典框架,很好的继承了MVC模式,并且进行了很多扩展,简化了web  程序的开发。对于Struts的学习才刚刚开始,很多细节的地方还是把握的不到位,在后边的学习中去专研。

  • 相关阅读:
    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
    Java NIO原理和使用
    用java做的免费投票器/软件/工具 可定制
    Java Socket发送与接收HTTP消息简单实现
    java的关闭钩子(Shutdown Hook)
    exe4j中"this executable was created with an evaluation错误解决方法
    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
    inno setup介绍及官方网站地址
    浏览器提示代理服务器没有响应
    Software caused connection abort: recv failed 错误介绍
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253665.html
Copyright © 2011-2022 走看看