精华内容
下载资源
问答
  • WebWork

    2018-11-28 15:44:38
    WebWork

    WebWork

    展开全文
  • webwork

    2015-04-15 17:17:15
    WebWork目前最新版本是2.2.2,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。  WebWork是建立在称为XWork的Command模式框架之上的强大的基于Web的M

        WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架。WebWork目前最新版本是2.2.2,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。


        WebWork是建立在称为XWork的Command模式框架之上的强大的基于Web的MVC框架。


        WebWork2建立在Xwork之上,处理HTTP的请求和响应。所有的请求都会被它的前端控制器(ServletDispatcher,最新版本是FilterDispatcher)截获。前端控制器对请求的数据进行包装,初始化上下文数据,根据配置文件查找请求URL对应的Action类执行Action,将执行结果转发到相应的展现页面。WebWork2支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。


        下面我们提到的WebWork将为WebWork2,使用的版本是WebWork2.2.2。


    原理:

        WebWork的网站上提供了一个完整的WebWork架构图。它描述了从客户端的一次请求到最后服务器端响应的整个执行过程。架构图如下:

    此架构图一共分为五个部分,其中五个部分分别由五种不同颜色表示。

    1.浅灰色方框。分别代表了客户端的一次Http请求,和服务器端运算结束之后的一次响应。

    2.浅红色方框。表示一次Action请求所要经过的Servlet filters(Servlet 过滤器)。我们可以看到最后一个filter就是我们前面介绍的WebWork的前端控制器

    3.蓝色方框。这是WebWork框架的核心部分。

        1)一次请求到了WebWork的前端控制器,它首先会根据请求的URL解析出对应的action 名称,然后去咨询ActionMapper这个action是否需要被执行。

        2)如果ActionMapper决定这个action需要被执行,前端控制器就把工作委派给ActionProxy。

              接着她们会咨询WebWork的配置管理器,并读取在web.xml文件中定义的配置信息。接下来ActionProxy会创建ActionInvocation对象。

        3)ActionInvocation是Xwork原理的(Command模式)实现部分。它会调用这个Action已定义的拦截器(before方法)Action方法Result方法

        4)最后,看上面流程的图的方向,它会再执行拦截器(after方法),再回到Servlet Filter部分,最后结束并传给用户一个结果响应

    4.靛色方框。这是拦截器部分,在上面的拦截器章节我们已经有了详细的介绍。

    5.黄色方框。这是我们在开发Web应用时,需要自己开发的程序。其中包括:Action类,页面模板,配置文件xwork.xml。


    核心:

    WebWork的三个关键部分

    1.Actions。一般一个Action代表一次请求或调用。在WebWork中,一般Action类需要实现Action接口,或者直接继承基础类ActionSupport。这是,它要实现默认的execute方法,并返回一个在配置文件中定义的Result(也就是一个自定义的字符串而已)。当然,Action也可以只是一个POJO(普通Java对象),不用继承任何类也不用实现任何接口。Action是一次请求的控制器,同时也充当数据模型的角色,我们强烈建议不要将业务逻辑放在Action中

    2.Results。它是一个结果页面的定义。它用来指示Action执行之后,如何显示执行的结果。Result Type表示如何以及用哪种视图技术展现结果。通过Result Type,WebWork可以方便的支持多种视图技术;而且这些视图技术可以互相切换,Action部分不需做任何改动。

    3.Interceptors。WebWork的拦截器,WebWork截获Action请求,在Action执行之前或之后调用拦截器方法。这样,可以用插拔的方式将功能注入到Action中。WebWork框架的很多功能都是以拦截器的形式提供出来。例如:参数组装,验证,国际化,文件上传等等。


    特点:

    ValueStack 和 EL

    1.ValueStack其实就是一个放置Java对象的堆栈而已,唯一特别的是可以使用EL来获得值堆栈中对象属性的数据,并可以为值堆栈的对象属性赋值。

    2.EL,全称Express Language,即表达式语言。不要被语言吓倒,它是简单的对象导航语言。由字符串(例如:方法名)

          和特殊字符组成(例如用.表示调用对应的属性方法)。通过EL,我们可以存、取对象数据,而且还可以直接访问类的静态数据,调用静态方法。

    3.WebWork的ValueStack底层由第三方开源项目OGNL实现。所以EL也都遵循OGNL的规范。我们在开发中,几乎不需要知道OGNL的细节。

    4.WebWork为每一次请求构建一个ValueStack,并将所有相关的数据对象(例如:Action对象、Model对象等)放到ValueStack中

          再将ValueStack暴露给视图页面,这样页面就可以直接访问后台处理生成的数据


    Interceptor( 拦截器 )

    1.一个拦截器就是在xwork.xml文件中定义的一个无状态Java类,它至少要实现XWork的com.opensymphony.xwork.interceptor.Interceptor接口

    2.实现Interceptor接口的拦截器,代码部分在intercept方法中实现。在intercept方法中,可以直接返回一个Result字符串,这样整个执行直接“短路”,这时Action的execute方法也不会执行(一般很少会这么用)。所以,一般都会在这个方法里调用参数对象invocation的invoke方法,并返回这个方法执行的结果。这样会持续执行后面的拦截器方法以及Action的execute方法等。


    3.大部分的时候,拦截器直接继承WebWork的抽象类com.opensymphony.xwork.interceptor.AroundInterceptor就可以了。这时,需要实现它的before和after方法。Before方法会在Action执行之前调用,after方法在Action执行之后调用。

    4.拦截器的执行顺序。我们可将多个拦截器放一起组装成一个拦截器栈。这样拦截器会按照栈的顺序由上而下执行before方法,所有before方法执行结束,再执行Action的方法执行Result的方法,再返回执行结果,最后再从下而上执行拦截器的after方法

    5.拦截器的过滤功能。我们通常会在应用中使用一个通用的定义多个拦截器的拦截器栈。但有些Action方法在调用的时候,不需要要其中的部分拦截器。这时,我们就可以使用拦截器过滤功能。如果拦截器要拥有过滤功能,必须实现抽象类com.opensymphony.xwork.interceptor.MethodFilterInterceptor。这样,拦截器在定义的时候或者在Action引用拦截器栈的时候,我们就可以指定哪些Action方法是需要过滤的,哪些Action是不需要过滤的。








    展开全文
  • webwork 

    2009-07-24 22:39:32
    [size=medium]WebWork是建立在称为XWork的Command模式框架之上的强大的基于Web的MVC框架。  WebWork2的特性包括:  灵活的Validation框架:允许你在XML文件中定义验证内容,在运行时通过Interceptor自动应用,...
    [size=medium]WebWork是建立在称为XWork的Command模式框架之上的强大的基于Web的MVC框架。
      WebWork2的特性包括:
      灵活的Validation框架:允许你在XML文件中定义验证内容,在运行时通过Interceptor自动应用,因此完全脱离Action类。新版支持客户端验证。
      Type conversion:允许你在类之间很容易转换对象。
      OGNL(Object Graphical Navigation Language)表达式语言:允许动态对象图表遍历和方法执行,使用ValueStack透明访问多Beans的属性。WW2也具有使用JSTL的能力。
      IoC(Inversion of Control)容器:管理组件的生命周期,使客户获得组件实例不需要创建注册类(与容器环境无关)。
      FreeMarker Templates:使UI组件可重用,从而允许开发者容易定制Web页面的look & feel。
      Interceptors:在Actions处理的前后动态拦截,以简单化Action代码,增加减少代码的机会。
      支持I18N。
      容易和第三方软件集成,包括Hibernate, Spring, Pico, Sitemesh等。
      支持多种视图技术,如JSP,Velocity,FreeMarker,JasperReports,XML等。
      支持Packages和Namespaces,来管理Actions。[/size]
    展开全文
  • WEBWORK

    2007-08-14 10:16:00
    webwork2是一个优秀的J2EE web程序MVC框架,作为一个传统的框架,在2.2以后和struts2进行合并为一个新型的统一框架。其提供了很多工具可以使初学者快速入门,从而进行敏捷开发,以下是我的尝试:到官方网站下载...
    webwork2是一个优秀的J2EE web程序MVC框架,作为一个传统的框架,在2.2以后和struts2进行合并为一个新型的统一框架。其提供了很多工具可以使初学者快速入门,从而进行敏捷开发,以下是我的尝试:
    

    到官方网站下载webwork2.2.4版本


    (1)快速上手:

        进入%webwork-2.2.4%目录下,运行java -jar webwork-2.2.4.jar quickstart:showcase

        运行之后,将会启动内嵌的jetty服务器在8080端口监视,并创建了一个showcase的应用程序,当你在浏览器输入http://localhost:8080/showcase的时候,将会连接我们的样例程序。

        背后:主要是读取webapps文件夹下的符合webwork规范的应用程序布局(可以简单创建,等下再说),同理,如果你输入java -jar webwork-2.2.4.jar quickstart:shopping-cart读取的将是shopping-cart应用程序,这样方便我们进行快速测试应用程序。

    (2)创建应用程序:

         进入%webwork-2.2.4%/webapps文件夹下,运行ant new,将会提示你创建一个新的应用程序名字,输入我们的样例名problog,将会创建problog应用程序,其中基本的程序布局都已经设置好,你只需要编写相关的应用程序代码。

         测试:按照快速上手上面说的那样,输入java -jar webwork-2.2.4.jar quickstart:problog

         在浏览器里面输入: http://localhost:8080/problog

         激动人心的时候到了,浏览器返回正确的结果。

         从这里可以看出,使用webwork进行敏捷开发是多么的简单^_^。由于集成的jetty内嵌服务器,测试变得那么容易了。

    (3)在eclipse中编写源码:

        创建应用程序problog后,在%webwork-2.2.4%/webapps/problog/文件夹下有几个文件专门用于eclipse使用的,那就是.project和.classpath。

        打开eclipse,把工作空间换到%webwork-2.2.4%/webapps(选择File/Switch Workspace)下,然后选择新建工程problog,点击完成,如果出现错误提示找不到junit,你可以新建一个junit测试,那就会提示你导 入junit.jar到路径里来了。

     

    ps:其他的就不用我多说了吧,只要开发过应用程序的都知道怎样去做了:)

     
    展开全文
  • WebWork5-源码

    2021-03-20 20:21:59
    WebWork5
  • java webwork_webwork 框架

    2021-03-09 03:50:38
    这个周末webwork velocity jsp jstl 这几种技术的集成使用终于小有成果。webwork 是比structs显得轻量些,是用ServletDispatcher做控制分发给不同的action.道理和structs相似,不过学起来很快,配置也简单些,只需...
  • WeBWorK添加了几个功能 =============================现在,大多数* Web安装都可以使用! =================================================================================================================...
  • 本文发表于《开源大本营》作者:钱安川前言本篇文章并没有太多WebWork 的实战代码细节。...围绕着纵轴,我们按照横轴的顺序逐步描述讲解:WebWork简介、WebWork入门、WebWork原理、WebWork实战和技巧、展望WebWork...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,078
精华内容 2,831
关键字:

webwork