知识大全 JSP设计模式中的两种常见模式

Posted

篇首语:蹉跎莫遣韶光老,人生唯有读书好。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JSP设计模式中的两种常见模式相关的知识,希望对你有一定的参考价值。

JSP设计模式中的两种常见模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  

  如果你经常去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 那么缺省的是服务器的缺省时间

  ======================================================================      ﹤xml version=  ?﹥      ﹤H ﹥Time JSP﹤/H ﹥      ﹤jsp:scriptlet﹥      //the parameter  zone  shall be equal to a number beeen   and   (inclusive)      TimeZone timeZone = TimeZone getDefault(); //returns the default TimeZone for the server      if (request getParameterValues( zone ) != null)            String timeZoneArg = request getParameterValues( zone )[ ];      timeZone = TimeZone getTimeZone( GMT+  + timeZoneArg +  : );      // 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);      ﹤/jsp:scriptlet﹥      ﹤%= 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(颗粒性) 以后要扩展该类也比较困难

  ======================================================================      ﹤xml version=  ?﹥      ﹤! Worker Class  nobody should see me ﹥      ﹤jsp:scriptlet﹥      //the parameter  zone  shall be equal to a number beeen   and   (inclusive)      TimeZone timeZone = TimeZone getDefault(); //returns the default TimeZone for the server      if (request getParameterValues( zone ) != null)            String timeZoneArg = request getParameterValues( zone )[ ];      timeZone = TimeZone getTimeZone( GMT+  + timeZoneArg +  : );      // 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);      HttpSession mySession = request getSession();      mySession putValue( tempTimeBean  timeBean);      ﹤/jsp:scriptlet﹥      ﹤jsp:forward page= displayTime jsp  /﹥      ======================================================================  

  View: displayTime jsp

  同样地 这个view既可以是一个servlet也可以是一个jsp文件 这里我们从Session中取得并显示它的值 实际上我们会将这做两次 来示范Bean是如何被使用的

cha138/Article/program/Java/hx/201311/27100

相关参考

油菜套种的两种模式

套冬菜、西瓜接茬水稻  该模式充分利用了油稻两季接茬间的光热能和土地资源,增加复种指数,通常亩产油菜籽120公斤;冬菜1000公斤;西瓜2200公斤;水稻450公斤。  1、配置方式:油菜移栽前将大田

知识大全 三层Web体系结构里的两种数据绑定模式

三层Web体系结构里的两种数据绑定模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言  本

知识大全 建立与Oracle服务器连接的两种连接模式

建立与Oracle服务器连接的两种连接模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在建立

罗非鱼养殖的两种主要模式

罗非鱼(Tilapia)为一种中小形鱼,俗称非洲鲫鱼,是现在世界水产业的重点科研培养的淡水养殖鱼类,且被誉为未来动物性蛋白质的主要来源之一。罗非鱼的肉味鲜美,肉质细嫩,无论是红烧还是清烹,味道俱佳。在

罗非鱼养殖的两种主要模式

罗非鱼(Tilapia)为一种中小形鱼,俗称非洲鲫鱼,是现在世界水产业的重点科研培养的淡水养殖鱼类,且被誉为未来动物性蛋白质的主要来源之一。罗非鱼的肉味鲜美,肉质细嫩,无论是红烧还是清烹,味道俱佳。在

知识大全 用JSP实现上传文件的两种方法

用JSP实现上传文件的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前用cos作文件

知识大全 什么是jsp设计模式

  一介绍记得初学jsp的时候总喜欢把他和aspphp去比较也习惯于使用asp的开发模式去写jsp后来才发现这真是很傻的做法其实jsp一出了来就已经用MVC模式了下面我就简要说说jsp设计使用MVC来

知识大全 JSP页面查询显示常用模式

JSP页面查询显示常用模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! //查询数据代

知识大全 Java获取客户端真实IP地址的两种方法

Java获取客户端真实IP地址的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在JSP

鱼鳞病常见的两种遗传方式

我们都知道鱼鳞病是一种皮肤干燥病症,很多患者都单纯的认为这是一种常见的皮肤病,殊不知鱼鳞病其实还是一种遗传疾病,因此做为鱼鳞病患者要特别注意这种疾病的遗传性。下面我们就和大家了解一下鱼鳞病常见的两种遗