动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.常见的十四种Java开发工具及其特.
.Java核心代码例程之:JavaMail -.
.JTree之间的drag/drop.
..NET应用程序的授权模型使系统更.
.用Struts上传多个文件的方法.
.下一波GUI设计-Matisse和NetBea.
.getTimezoneOffset 方法.
.软件的架构设计.
.揭开 Java 安全标准的神秘面纱.
.Java升级篇:ANT十五大最佳实践详.
.使用GameCanvas制作星空效果.
.JBoss:有状态会话Bean及其多种调.
.基于MIDP1.0实现组合按键.
.Java中使用DirectDraw.
.WirelessMessagingAPI(2).
.让Web Start解决你的应用部署问题.
.基于UML的工作流管理系统分析二(.
.用Java的循环实现矩阵乘法代码分.
.控制对类内部数据或函数成员访问.
.获取滚动文本框TextArea焦点位置.

通过Struts应用MVC设计模型

发表日期:2008-1-5 |



  模型--视图--控制器(Model-View-Controller,MVC)体系突出了Servlets和jsp的优点,同时也令它们的缺点最小化。在实现中,用户请求被发送到一个控制器servlet,该servlet决定请求的性质,并且根据请求的类型传送给适合的处理器。每个处理器都和一个非凡的模型相关,里面封装有商业逻辑来执行一些非凡的函数集合。处理完毕后,结果会发送回处理器,处理器选择适合的视图显示它。

  Struts最早于2002年5月作为Jakarta项目的组成部分问世,Jakata项目由Apache Foundation.运做。项目的创立者希望该项目的研究改进和提高Java Server Pages (JSPs)、servlet、标签库以及面向对象的技术水准。Struts为使用MVC体系来编写应用提供了一个架构。Struts使用“ActionMapping”,它答应servlet将用户的请求转变为应用行为。ActionMapping通常指定一个请求的路径、在请求上进行动作的对象类型,以及指定其它需要的属性。

  Action对象作为ActionMapping的一个部分使用,负责处理请求,并且发送响应回适合的视图(通常是一个Web浏览器),或者传送请求至适合的模型。

  在模型和视图间的桥是一个form bean,它可以通过继续org.apache.struts.action.ActionForm得到。form bean用来保存处理前的用户数据,或者显示返回给用户的模型数据。Struts包含有自定义的标签,它可以由创建的form bean中自动组合字段。

  在实践中用户请求JSP页面,控制器servlet接收请求并决定由哪个应用处理它。Action对象传送该请求到包含有接收商业逻辑的JavaBean中。商业逻辑bean将连接数据库并进行查询,接收结果,然后返回结果给Action对象。Action对象将结果作为请求的一部分存放到一个form bean中。一旦收集完请求的全部数据,就可以格式化结果并且显示。最后是JavaServer Page以Html表格的形式将结果显示出来。

  模型,控制器和视图

  Struts中的控制器的基本组件是ActionServlet类中定义的servlet,它是由ActionMappings定义的。ActionMapping类表示的是Action对象的名字和位置。当一个请求进入控制器时,它将请求的路径映射到Action的位置,并且将请求传送给Action。Struts的ActionMapping类还可能包含有其它的信息,这些信息可能只是与你的应用相关,例如本地变量,环境变量或者其它URIs。

  Struts的要害是控制器四周的活动。Struts控制器servlet映射事件到类(一个事件通常是一个HTTP POST, GET,或者类似的请求)。ActionServlet是MVC设计模型的司令部,也是StrUCts架构的核心。ActionServlet创建和使用Action,一个ActionForm和ActionForward。struts-config.XML是用来设置Action的。在创建Web应用期间,采用扩展Action和ActionForm来解决如何响应用户请求的问题。struts-config.xml则是告诉ActionServlet如何使用扩展类。也可扩展ActionServlet以令Structs应用带有一些自定义的特性。

  这个方法有几个优点。首先,应用的整个逻辑流都是在一个分等级的文本文件中。这样就可以比较轻易地查看、理解应用,非凡是大的应用。第二,编写网页的人在修改网页时就无需遍历Java代码来理解应用的流程,而Java开发者在改变流程的时候也无需重新编译代码。

  ActionForm为Web应用维护session状态。ActionForm是一个抽象类,它可以被每个输入表格模型扩展。它代表数据的一般概念,可以被HTML表格设置或者更新。例如,你的应用也许拥有一个被HTML表格设置的UserActionForm。Struts的架构将检查UserActionForm是否存在,假如不存在,就会创建一个该类的实例。Structs将会使用HttpServletRequest的相应字段来设置UserActionForm的状态。在传送UserActionForm给商业封装层的UserAction前,Struct架构先更新UserActionForm的状态。

  Structs模型包含有系统的状态和它可以接受的操作。可以使用各种各样的结构来表示模型(例如其它servlets或者JSP),不过在大多数的时候你都会使用JavaBeans。JavaBean的属性,或者在Enterprise JavaBeans (EJBs)中由外部数据源得到的数据--表示的是状态,而方法则是表示可以在上面进行的操作。操作并不需要被JavaBean方法定义;在简单的情况下,操作可以放置到Action对象中,虽然这样会令处理和分级之间的区别变得模糊。

  Struts MVC应用的视图通常由JSP构造,它可以使用HTML或者XML静态格式化页面,还提供了一个方法可动态插入自定义的内容来响应用户的请求。Structs的一个要害是它的自定义标签库,它提供了一个方法,可以很轻易地使用JSP来创建用户界面。

  Structs架构包含有自定义的标签库,可以通过各种不同的方式使用。虽然就使用该架构来说,这些库并不是必须的,不过它们包含的标签在你的应用的许多地方都很有用。Structs的一些标签库包括有:

  . structs-html标签库。该库可以用作创建动态HTML用户界面或者表格。

  . structs-bean标签库。对于将JavaBean代码放到JSP页面,该库提供了一个加强方式,通过 标签实现。

  . struts-logic标签库。该库可以治理有条件地产生输出文本,遍历对象collections以重复地产生输出文本,还有应用流控制。

  . struts-template标签库。该库包含的标签可用作为页面创建动态的JSP模板,这些页面都拥有一个公共的外观或者公同的格式。

  使用这些标签库和其它的任何库都是一样的。因为库已经写好了,你所要做的就是告诉servlet引擎要使用它。在Tomcat中,你可以通过web.xml文件中的<taglib>标签来指定标签库的URI,以及Web服务器系统上标签库描述文件的位置。

  The Small Print

  Jakarta工程可让你下载Structs的二进制版本,或者直接由源代码中编译它。二进制版工作得很好,不过假如你拥有一个不常见的软件平台,或者想学习一下如何编译它,也不是很困难。无论你的选择如何,Structs都需要以下几个软件:

  . Java Development Kit (JDK). 你需要为你的操作系统下载和安装一个Java 2 JDK实现。

  .Servlet容器。你还需要下载和安装一个兼容Servlet API规范(2.2版以上)、JSP规范(1.1版以上)的servlet容器。一个好的选择是下载Apache的Tomcat,它可以支持网页服务,并且可以运行servlet和JSP。

  .XML解析器。Struts需要一个兼容Java API for XML Parsing (JAXP)规范(1.1版或以上)的XML解析器。

  .Servlet API类。为了编译Structs或者使用Structs的应用,你将需要一个包含有servlet和JSP API类的servlet.jar文件。大部分的servlet容器都包含有这个JAR文件。

  .JDBC 2.0 optional package类。Structs支持javax.sql.DataSource的一个可选实现,因此它需要这些API类来编译。你可以在这个网址下载这些包类:http://java.sun.com/products/jdbc/download.html

  要使用Structs来建立一个应用,需要遵从以下步骤。首先,将Structs中的lib/commons-*.jar和 lib/struts.jar文件拷贝到应用中的WEB-INF/lib目录。然后将Structs中的全部标签库描述文件(lib/struts-*.tld)拷贝到你的Web应用中的WEB-INF目录。

  拷贝完这些文件后,你就可以修改Web应用中的web.xml文件,令它包含有一个<servlet>元素来定义控制器servlet,还有一个<servlet-mapping>元素以指明哪个请求的URI被映射到这个servlet。假如你使用默认的目录来进行一个标准的安装,你可以使用Struts例子应用中的web.xml文件来作为一个参考,看它是如何设置的,然后你就可以修改Web应用中的web.xml文件来指定适当的标签库声明。再次申明,你可以由Structs的例子应用中学习如何设置。

  修改完web.xml文件后,在WEB-INF目录创建一个称为struts-config.xml的文件,在其中定义操作映射和其它与你的应用相关的特性。最后,在每个将使用Struts自定义标签的JSP页面的顶部,加入Struts自定义标签的声明。

  Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。假如想混合使用servlets和JSP的优点来建立可扩展的应用,Struct可以帮助你完成其中的一些工作。

上一篇:J2ME游戏开发实例讲解 人气:519
下一篇:java入门与加深(上)(1) 人气:305
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号