下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → JSP 构架-2种方式:Model I和Model II__教程
JSP 构架-2种方式:Model I和Model II__教程
日期:2007-5-20 1:18:54 人气:165     [ ]
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
 如果你经常去Servlet或JSP的新闻组或者邮件列表,那么一定会看到不少关于Model I 和Model II 方法的讨论。究竟采用哪一种,这取决于你的个人喜好、团队工作策略以及是否采用正统的OOP。

简单地说,Model I将事务逻辑(business logic)和表示代码(presentation code)融合在一起(如在HTML中);Model II则提倡最大限度地将所有的代码放到内容表示之外。


Model I: 简单的单层次应用

如果是在一个人人都精通Java和HTML的环境中,或者你独自做着所有的工作,假如每个人都有清晰的编程结构和思路,那么这种方法会很有效,不过这样的假设不在本文讨论范围之内。这种方法的第一个优点是如果你的应用改变了,你只需维护一个文件。而最大的缺陷是可读性!除非十分小心,否则你的HTML和Java代码会相互混杂,从而难以维护。

在下面这个例子中,我们将增加一个 TimeZone 元素,从而使它变成JSP文件,它会返回基于时间的所期待的TimeZone。如果没有提交 TimeZone,那么缺省的是服务器的缺省时间。

======================================================================

Time JSP



//the parameter "zone" shall be equal to a number between 0 and 24 (inclusive)
TimeZone timeZone = TimeZone.getDefault(); //returns the default TimeZone for the server
if (request.getParameterValues("zone") != null)
{
String timeZoneArg = request.getParameterValues("zone")[0];
timeZone = TimeZone.getTimeZone("GMT+" + timeZoneArg + ":00");
// gets a TimeZone. For this example we´re just going to assume
// its a positive argument, not a negative one.
}
//since we´re basing our time from GMT, we´ll set our Locale to Brittania, and get a Calendar.
Calendar myCalendar = Calendar.getInstance(timeZone, Locale.UK);

<%= myCalendar.get(Calendar.HOUR_OF_DAY) %>:
<%= myCalendar.get(Calendar.MINUTE) %>:
<%= myCalendar.get(Calendar.SECOND) %>
======================================================================
相应地,数据也可以从JavaBean取得并加以显示。在下一个例子中我们就可以看到。


Model II: 重定向请求(Redirecting Requests)


在一个团队开发环境中,有些是HTML设计者,另一些则是Java程序员,这时这一方法显得非常重要。Java程序员可以集中精力创建可重用代码,而HTML设计师可以集中精力于内容表示,彼此相对对立,可以分别动态地修改自己的内容,只要总体的输入输出不变。

现在我们可以使用Model II来表示Model I的那个例子。这一方法遵循了Model-View-Controller (MVC) 范例 (cite Design Patterns book)。 在这个例子中,我们只有一个类(页或者servlet) 处理请求(Controller),取得TimeZone,设置所有用于表示的变量,并将控制传递到表示页(View)。作为如此简单的应用,可以没有 "Model"。

Controller: timeByZone.jsp


controller可以是一个servlet或一个JSP页。我推荐使用JSP,因为这样我不必担心每当我做修改时要对类重新编译,但是,你将因此失去granularity(颗粒性),以后要扩展该类也比较困难。


======================================================================



//the parameter "zone" shall be equal to a number between 0 and 24 (inclusive)
TimeZone timeZone = TimeZone.getDefault(); //returns the default TimeZone for the server
if (request.getParameterValues("zone") != null)
{
String timeZoneArg = request.getParameterValues("zone")[0];
timeZone = TimeZone.getTimeZone("GMT+" + timeZoneArg + ":00");
// gets a TimeZone. For this example we´re just going to assume
// its a positive argument, not a negative one.
}
TimeBean timeBean = new TimeBean();
timeBean.setHours = myCalendar.get(Calendar.HOUR_OF_DAY);
timeBean.setMinutes = myCalendar.get(Calendar.MINUTE);
timeBean.setSeconds = myCalendar.get(Calendar.SECOND);
出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.