ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 流水账解读struts2

流水账解读struts2

原创 Linux操作系统 作者:icer_repls 时间:2011-05-31 18:12:34 0 删除 编辑
    一、关于struts2的定位
        strut2是一个全新的框架,一个第二代web应用程序框架。
    二、struts2的核心组件
        struts2的核心组件包括三个:拦截器(interceptor)、类型转换器、动作(action)。拦截器和类型转换器是幕后台的大英雄,而动作则是幕前的大英雄。这么比喻是因为我们在大部分情况下根据自己的需求业务来编写自己的动作类,而strut2内置的拦截器和类型转换器则可以满足我们绝大部分的需求,我们几乎不用自己去定义自己的拦截器,不过相对来说自己定义类型转换器的机会则稍微大点。
        拦截器:因为我们如果用到了struts2的话,几乎可以肯定的说了解了servlet,说得通俗点拦截器就相当于一个过滤器(filter)。每次新的请求发生时先经过拦截器,然后再根据需要(工作流一直达到我们的动作类)到达action类,然后处理相关业务逻辑。然后回来之后再按照拦截器之前被触发的顺序的相反顺序被执行一遍。
        类型转换器:类型转换器的作用是为了兼容浏览器端的表单数据和java端服务器端数据。我们知道在浏览器端一切皆字符串,而在java端则是有整形、浮点型、String、还有什么list,map等等一些类型。所以为了使浏览器端的字符串在后台被处理为java匹配的类型,就产生了类型转换器。
        动作:动作是真正处理业务逻辑的地方,业务逻辑处理后根据返回字符串来决定跳转到哪个显示页面。默认是执行动作类里面的execute(),默认返回“success”,动作类有几种实现方式,比如说继承ActionSupport类,或是直接继承Action接口,或者自己写个类,然后里面提供一个execute()(当然不一定是这个方法,不过这需要在配置文件里面显示的说明被调用的那个方法)。最常用的还是继承ActionSupport,因为这里面为我们提供了很多常用的方法,比如说验证用的validate()(验证数据)等等。
        还有一个概念也是很重要的valueStack和actionContext。valuestack和actioncontext的一个强大之处就是,提供了数据的统一存放位置(虽然这两个概念是逻辑的),这样的话便于我们对数据的请求,使得一个复杂的框架显得更加清晰。然后我们去这两个地方去取数据时,就需要OGNL(可以从valuestack和actioncontext取出需要的数据)。
        当然struts2的组件远远不止这些,我只是列出了其中相当重要的而已。
    三、struts2的工作原理
        strut2的工作原理得从浏览器的请求说起,当地址栏发出一个url请求后,strut2首先分析url地址,从中得出某个应用(application)下的某个namespace(命名空间)的某个action,然后去配置文件中(一般是struts.xml)中查找这个namespace下是否存在这个action,如果不存在(可能有默认的action,那么就转到默认的action)就报错,否则先经过一系列的拦截器(一般用struts2默认的,比如说参数的合法性之类的就是在拦截器这里验证的),如果拦截器发现什么发现什么不正常的逻辑,就改变工作流(通俗点说就是改变代码的执行路径)转到它应该去的地方。最后如果拦截器这步一切正常,最后转到action类里面的业务逻辑,最后再按照之前拦截器的相反顺序处理一些后续工作。 当业务逻辑处理之后我们就可以返回一个控制字符串,然后在配置文件(struts.xml)里面根据的name属性来决定我们应该呈现哪个结果给浏览器。
    四、总结
        这只是我对struts2的一个大致总结,就是标题所说流水账,因为我们学习什么东西有一个整体概念再去学习细节感觉效率会更高。所以就写了这篇文章。这仅是个人学习之后的理解,如果理解有缺陷,欢迎指出!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25701553/viewspace-696820/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORACLE SCN详解
请登录后发表评论 登录
全部评论

注册时间:2011-04-16

  • 博文量
    20
  • 访问量
    65378