ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:70.62KB ,
资源ID:16242302      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16242302.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(WebWork学习笔记Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

WebWork学习笔记Word下载.docx

1、实战G-Roller-WW 41G-Roller-WW介绍 41JSTL与WebWork的整合 41中文解决方案 41WebWork与其它开源项目的集成 41Spring 41Hibernate 41Xml-RPC 41总结 42附录 42我钟爱的Opensympnony 42从技术的角度Struts1.1与WebWork2的比较 44WebWork的项目资源 46参考资料 46WebWork介绍WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard

2、Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目,如下示意图所示:WebNon-webXwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用Servlet

3、Dispatcher将HTTP请求的变成Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。下面我们提到的WebWork将为WebWork2,使用的版本是2.1。WebWork安装HelloWorldWebWork安装当然,在具体开发使用介绍之前,搭建好运行环境是必备的。首先从webwork-2.x.jar 当然就是WebWrok最新发布的Jar包webwork-examp

4、le.war 是WebWrok自带的很有代表性的功能演示例子,掌握它是提高你的WebWork技术水平的捷径webwork-migration.jar 提供快速将1.x版本移植到2.x版本所用的类文件docs目录 WebWrok的使用文档,包括api文档、clover文档、单元测试(Junit)文档等lib目录 WebWork在运行或编译时所用到的所有.jar包src目录 源程序目录2、WebWork是J2EE Web框架,当然要运行在Web容器中,我用的是稳定的Tomcat 4.1,关于tomcat的安装和部署请自己搞定。3、用WebWork当然要将它的运行时用到的Jar包放到Web容器可以找

5、到的ClassPath中,将步骤1介绍的webwork-2.x.jar放到你部署目录下WEB-INFlib目录里,同时将WebWrok解压目录libcore下的所有.jar文件也拷贝到WEB-INFlib目录,这些是运行WebWork必需要用到的jar包。4、了解Web框架的朋友都知道,一般Web框架都是通过一个JavaServlet控制器提供统一的请求入口,解析请求的url,再去调用相应的Action进行业务处理。WebWork也不例外,它要求你在web.xml文件里配置一个派遣器ServletDispatcher,它初始化WebWrok的一些配置信息,解析XWork的Action配置信息,

6、根据请求去组装和调用执行相应的拦截器(Interceptor)、Action、Action Result(Action执行结果的输出)等,具体配置如下:servlet-namewebworkservlet-classcom.opensymphony.webwork.dispatcher.ServletDispatcher/servletservlet-mappingurl-pattern*.action/servlet-mapping这样,.action结尾的所有url请求将直接有ServletDispatcher去调度。下面我们写一个经典的HelloWorld,跑一个简单实例来验证你运行环境

7、是否可用,并感受一下简单、功能强大的WebWork的开发。注意:如果使用WebWork自带的标签库,除了配置相应的标签库以外,还须将com.opensymphony.webwork.views.velocity.WebWorkVelocityServlet配置到web.xml,具体可以参考webwork-example里面的配置。HelloWorld首先看下面这个程序HelloWorldAction.java:package helloWorldimport com.opensymphony.xwork.Action;public class HelloWorldAction implemen

8、ts Action String greeting; public String getGreeting() return greeting; public String execute() throws Exception greeting = Hello World!; return SUCCESS;HelloWorldAction是一个普通的Java类,它实现了Action这个接口。Action是一个非常简单的接口,只有一个方法:public String execute() throws Exception; ,Action类介绍见下一节。HelloWorldAction有一个Stri

9、ng类型字段greeting,在execute()方法中,greeting被赋值“Hello World!”,并返回String型常量SUCCESS,SUCCESS的定义详见Action接口,这个常量代表了execute()方法执行成功,将返回成功页面。返回的页面greetings.jsp代码如下:% taglib prefix=ww uri=webwork %htmlhead First WebWork Example/headbodypww:property value=greeting/p/body/html greetings.jsp很简单的jsp页面,它使用了WebWork自带的标签

10、库。它的作用是输出变量“greeting”的值。这个result name=success type=dispatcher param name=location/greetings.jsp/result/action我们先看action标签:name=”hello”,表示我们调用这个Action的标识是hello,这样我们可以通过下面的url访问这个Action:/hello.action,例如:http:/localhost:8080/webwork/hello.action;class=很好理解,这是真正调用执行的类。我们在看看result标签:name=,记得前面HelloWorldA

11、ction返回的字符常量SUCCESS吗?它的值其实就是“success”,它表示Action执行成功返回success就转向这个结果;type=表示执行完Action,转向结果页面的方式;param参数指定了结果页面的位置:/greetings.jsp。代码写完,剩下的当然是编译、部署。启动tomcat服务器之后我们就可以执行了:在浏览器里输入你的地址:8080/webwork/hello.action你将会看到如下结果:Action(动作)Action介绍Action在MVC模式中担任控制部分的角色,在WebWork中使用的最多。每个请求的动作都对应于一个相应的Action,一个Actio

12、n是一个独立的工作单元和控制命令,它必需要实现XWork里的Action接口,实现Action接口的execute()方法。Action接口的代码如下:package com.opensymphony.xwork;import java.io.Serializable;public interface Action extends Serializable public static final String SUCCESS = public static final String NONE = none public static final String ERROR = error pub

13、lic static final String INPUT = input public static final String LOGIN = login public String execute() throws Exception;excute()方法是Action类里最重要的部分,它执行返回String类型的值,在Action中返回的值一般使用它上面定义的标准静态字符常量。前面的HelloWorldAction返回的就是SUCCESS字符常量,真正的值当然就是“success”,它与xwork配置文件里result标签name的值是相对应的。它用来决定execute()方法执行完成之

14、后,调用哪一种返回结果。字符常量的含义如下:SUCCESS:Action正确的执行完成,返回相应的视图;NONE:表示Action正确的执行完成,但并不返回任何视图;ERROR:表示Action执行失败,返回到错误处理视图;INPUT:Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入的界面,一般在应用中,会对这些参数进行验证,如果验证没有通过,将自动返回到该视图;LOGIN:Action因为用户没有登陆的原因没有正确执行,将返回该登陆视图,要求用户进行登陆验证。用户注册例子下面我们将以一个用户注册的例子详细介绍Action的原理:功能描述:一个用户注册页面regist

15、er.jsp,用户可以在这个页面里输入用户注册的基本信息(例如:姓名、密码、Email等),输入完成提交表单,执行用户注册的Action,执行成功返回成功提示的页面(register-result.jsp)并将注册的信息输出。模型:User.java 控制:RegisterAction.java视图:register.jsp、register-result.jsp配置:xwork.xmlUser.java:package register;public class User private String username; private String password; private St

16、ring email; private int age; public String getUsername() return username; public void setUsername(String username) this.username = username; public int getAge() return age; public int setAge(int age) this.age = age; public String toString() return username= + username + password= + passwordemail= +

17、emailage= + age;模型User是一个普通的JavaBean,它包含了用户注册的字段信息,并对每个字段提供相应的set和get方法。下面我们来看看进行用户注册动作的RegisterAction.java:package example.register;/* * author moxie-qac * achqian */public class RegisterAction implements Action private User user= new User(); public User getUser() return this.user; public String ex

18、ecute() System.out.println(Start execute 。);User=+user); /在这里调用用户注册的业务逻辑,比如:将注册信息存储到数据库 return SUCCESS;这个Action是不是特清爽?用户注册就这么几行代码搞定,当然,我们提倡在Action里最好不要实现业务代码,Action的主要功能是提供从请求中取得参数的值,转化成相应的模型,再将模型传递给执行业务操作的对象,比如:将注册的用户信息存储到数据库中,由业务对象执行业务操作,再返回执行的结果。为了简化我们省去了注册的业务逻辑执行步骤。再看看我们注册信息输入的页面:register.jspReg

19、ister Exampletrtd align=leftform name=register action=register.action method=post Username:input type=text name=user.usernamebr Password:user.password Email:user.email Age:user.agesubmitSubmit/form/td/tr/tableregister.jsp页面其实只是一个普通的HTML页面,它提供了一个表单,用来接受用户输入的注册信息,它唯一特殊的部分就是input输入框定义的name部分,例如:用户姓名用的是

20、“user. username”。这种命名方式代表什么含义?它是必需的吗?下面我们将会给出答案。RegisterAction正确执行完成之后,会将执行的结果返回到register-result.jsp页面,由它来显示用户在前面页面输入的注册信息。register-result.jsp代码如下:Register result Congratulation,your register success! Username: Password: Email: Age:这个Jsp页面使用了WebWork的标签库 ,记得HelloWorld里的greetings.jsp吗?它也使用了这个标签库。我们看这个

21、:它是一个普通的使用标签库语句,查看这个标签库的源程序,见包com.opensymphony.webwork.views.jsp里的PropertyTag.java文件,你会发现这个类会根据value后面赋予的表达式值,去OgnlValueStack里查找这个表达式值所对应的操作。执行这个语句OgnlValueStack会根据value的值(一个表达式)“user.username”去分别调用RegisterAction类的getUser()和User类的getUsername()方法,即:getUser().getUsername(),取得的数据就是前面注册页面输入的用户名。我们把“user

22、.username”这样的语句叫做表达式语言(Expression Language,简称为EL)。它由XWork框架提供,XWork表达式语言的核心是OGNL(Object Graph Notation Language),OGNL是一种功能强大,技术成熟,应用广泛的表达式语言,将在下面的章节有详细介绍。我们在回到前面介绍的register.jsp,Input输入框里用的“user.username”,现在我们可以明白,它不是随意设置的,它是一个表达式语言,有着特殊的功能。看到这里,不知道你心中是否有一个疑问:我们的RegisterAction是如何取得用户注册页面输入的数据呢?如果你做过W

23、eb开发,你一定会想到RegisterAction里必需有一些从客户端请求中获取参数的语句,例如: 类似:String username = request.getParameter(“user. username”)的语句(request是HttpServletRequest的对象),去从request请求里面获取用户输入的参数值。可是我们这个Action里面只有User对象简单的get方法,并没有其它的代码。Xwork框架的Action是如何去实现了与Web无关?request请求的参数是怎么传递到我们Action的模型User中呢?在回答答案之前,我们先看一看Xwork的配置文件xwor

24、k.xml:example.register.RegisterAction /register-result.jspinterceptor-ref name=params看了前面的介绍,这段配置文件应该不难理解。用户通过注册页面register.jsp输入自己的注册信息,提交表单到动作register.action,它将有ServletDispatcher调度,从配置文件xwork.xml里查找与“register”匹配的Action名字,即上面配置的Action。通过这个名字XWork框架找到这个Action的类:example.register.RegisterAction,XWork框架会负责去创建这个Action类的对象并调用execute()方法进行用户注册操作。正确执行execute()方法返回String类型数据“success”之后,它会请求再派遣

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1