上一篇博客中我们简单的介绍了BeanUtils的使用。以及其最主要的原理,今天我们进一步的理解这个类在Struts1中的使用。
    首先我们先回想一下搭建一个简单的基于Struts1框架的过程:
       1.首先新建一个webProject
             2.拷贝struts相关jar文件到WEB-INFO/lib目录下
              3.配置web.xml中的ActionServlet
              4.提供Struts-config.xml文件。
              5.建立ActionForm
              6.建立Index.jap,并完好表单
              7.新建XXAction类,继承Action并重写
    可是这些东西到底是怎么协同工作的呢,你假设想着他就是规定。那你就错过了一个非常好的学习的机会,以下通过一张图类介绍struts1在接到用户请求后的一些列的流程。

        通过上面的图,我想能非常好的解释struts的整个的执行流程了。

从图中能够看出,用户编写的两个类中Action类仅仅关心了业务的调用,而ActionForm类就是数据的载体并能提供数据验证的功能。大部分的工作都用框架帮我们实现了。

        研究Struts1的优点:
        struts1中的好多技术往往是人们解决这个问题的第一想法,并且不能不说是不错的想法。随着Struts2的问世,人们開始逐渐的放弃使用struts1了。可是绝对不是没有学习的必要性了。每种框架的改进都是有原因的。我们要学习的不不过最新的技术,更要知道老的技术中的问题,能更好的帮助我们学习和掌握新技术。

Struts1——从BeanUtils看struts的实现原理2的更多相关文章

  1. Struts1——离BeanUtils看struts其原理1

    在Struts中非常典型的特点就是使用了ActionForm来搜集表单数据,可是搜集到的表单数据所有都是String类型的.假设我们直接拿来使用我们会面临一个非常麻烦的问题就是频繁的类型装换. Str ...

  2. 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析

    文章中引用的代码均来自https://github.com/vczh/tinymoe.   看了前面的三篇文章,大家应该基本对Tinymoe的代码有一个初步的感觉了.在正确分析"print ...

  3. 跟vczh看实例学编译原理——一:Tinymoe的设计哲学

    自从<序>胡扯了快一个月之后,终于迎来了正片.之所以系列文章叫<看实例学编译原理>,是因为整个系列会通过带大家一步一步实现Tinymoe的过程,来介绍编译原理的一些知识点. 但 ...

  4. 跟vczh看实例学编译原理——零:序言

    在<如何设计一门语言>里面,我讲了一些语言方面的东西,还有痛快的喷了一些XX粉什么的.不过单纯讲这个也是很无聊的,所以我开了这个<跟vczh看实例学编译原理>系列,意在科普一些 ...

  5. BeanUtils基本使用方法与原理

    使用BeanUtils的原因 因为setProperty是JSP中的标签,因此使用model 2模式JSP+Servlet+JavaBean的时候,JSP将form提交给Servlet程序,而Serv ...

  6. struts 1.x 原理

    Struts 当我接触到这个框架的时候.我就在想为什么是struts,而不是什么CraigFramework.结构.支撑,这样来理解也不难怪了. 为什么须要struts? 在struts in act ...

  7. Struts简介、原理及简单实现

    struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...

  8. 跟vczh看实例学编译原理——二:实现Tinymoe的词法分析

    文章中引用的代码均来自https://github.com/vczh/tinymoe.   实现Tinymoe的第一步自然是一个词法分析器.词法分析其所作的事情很简单,就是把一份代码分割成若干个tok ...

  9. 从UI Automation看Windows平台自动化测试原理

    前言 楼主在2013年初研究Android自动化测试的时候,就分享了几篇文章 Android ViewTree and DecorView Android自动化追本溯源系列(1): 获取页面元素 An ...

随机推荐

  1. Builder模式 初体验

        看来Java构造器模式,决定动手体验下.构造器模式是什么?干什么用的?推荐大家看下ITEYE的一篇文章     http://www.iteye.com/topic/71175     了解构 ...

  2. 将excel的.xlsx文件转成数据库文件.db的方法

    1.下载好工具SQLite Expert Professional 3 ,晚上有很多,自行百度. 2.打开.xls文件,将文件另存为.csv文件.说明一下: 可以将xls文件看作是数据库里的一个表.所 ...

  3. React初步

    今天整理一下自己关于react的学习笔记. 什么是React? 学习某一个框架首先得知道这个框架是干什么的,它的特点是什么,有哪些优点和缺点. React有4个特点 组件化 虚拟DOM 单项数据流 j ...

  4. 豆瓣移动端风格的css命名方法与学习

    在CSS取名相对于刚入门来说是最头疼的事情,往往取一个可读性的名字相对以后的代码风格还是很重要的. 在配合团队方面一个好的类名可以帮助同事来理解,增加团队之间的效率有着很大的意义. 豆瓣的前段相对其他 ...

  5. arc engine - ILayer.

    ILayer    ILayer接口是被图层(Layer)对象实现的,图层对象是用来在地图中显示空间信息.    注意,图层不含有空间数据,它只是获取数据的一个引用层而已.图层对象是一个抽象对象,它定 ...

  6. sql 创建临时表

    declare @channelid varchar(100) set @channelid='''WH00026'',''WH00083''' declare @sql varchar(1000) ...

  7. web qq 获取好友列表hash算法

    web qq 获取好友列表hash算法 在使用web qq的接口进行好友列表获取的时候,需要post一个参数:hash 在对其js文件进行分析之后,发现计算hash的函数位于: http://0.we ...

  8. 转载--eclipse git插件安装

    原文地址:http://yufenfei.iteye.com/blog/1750124/ 一.Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2 ...

  9. PHP第二课笔记

    ★Php的基本概念 快速入门案例 test.php <html> <body> //<?php  ?>是运行在服务端 <?php   echo 'hello' ...

  10. javascript区分电脑与手机登陆

    <script language="javascript"> function checkMobile() { var pda_user_agent_list = ne ...