一个开发人员眼中的JSP技术(上)

2016-02-19 15:22 8 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐一个开发人员眼中的JSP技术(上),希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Web开发 】

(作者:天译编译 2000年12月01日 14:26)
  
  JavaServerTM Pages(JSP)技术为我们提供了一种建立动态网页的简单方法,而且也简化了构造web程序的工作。本文从一个开发人员的角度对JSP技术做了一个全面介绍(并提供了一些JSP实例程序)。
  前言
  JavaServer Pages技术可以让web开发人员和设计人员非常容易的创建和维护动态网页,特别是目前的商业系统。作为JavaTM技术的一部分,JSP能够快速开发出基于web、独立于平台的应用程序。JSP 把用户界面从系统内容中分离开来,使得设计人员能够在不改变底层动态内容的前提下改变整个网页布局。
  那么什么是JavaServer Page呢?简单的说,一个JSP网页就是在HTML网页中包含了能够生成动态内容的可执行应用程序代码。此应用程序可能包含JavaBeanTM,JDBCTM对象,Enterprise Java BeanTM (EJB)和Remote Method Invocation (RMI)对象,所有的部分都可以非常容易的从JSP网页上访问到。例如,一个JSP网页可以包含 HTML代码所显示的静态文本和图像,也可以调用一个JDBC对象来访问数据库;当网页显示到用户界面上以后,它将包含静态HTML内容和从数据库中找到相应的动态信息。
  在JSP网页中,要把用户界面和应用程序分开可以考虑在网页设计人员和开发人员之间执行一个非常方便的授权任务。它也允许开发人员去建立灵活的代码,从而非常容易的进行更新和重复利用。由于JSP网页能够根据需要自动进行编译,web设计人员无须重新编译应用程序逻辑就可以改变表述代码。这也使得JSP与Java servlet(它是JavaSever Pages功能的扩展)相比成为一种可以更灵活生成动态web内容的方法。
  
  JSP和Servlet
  如果你已经用过Java servlet,那么你就会知道servlet可以让你建立动态生成的网页,而网页中包含有从服务器方的Java对象中所获得的数据。但是你也得知道servlet 生成网页的方法就是在Java类中嵌入HTML标签和表述代码。这就意味着改变表述代码需要修改和重新编译servlet源文件。因为设计HTML页面的设计人员可能与编写servlet代码的开发人员不是同一个人,更新基于servlet的web应用程序就成了一件非常棘手的事情。
  
  Enter JavaServer Page是Servlet API的一个扩展。事实上,JSP网页在编译成servlet之前也可以使用,所以它们也具有servlet的所有优势,包括访问Java API。由于JSP 是嵌入到servlet中关于应用程序的一般表述代码,所以他们能够被看成一种“彻底”的servlet。
  
  JSP网页主要提供了一种建立servlet的高水平方法,它还带来了其他的优点。即使你已经为web应用程序编写了servlet,使用JSP仍然有很多优势:
  
  JSP网页可以非常容易的与静态模板结合,包括HTML 或XML 片段,以及生成动态内容的代码。
  
  JSP网页可以在被请求的时候动态的编译成servlet,所以网页的设计人员可以非常容易的对表述代码进行更新。如果需要的话,JSP网页还可以进行预编译。
  
  为了调用JavaBean组件,JSP标签可以完全管理这些组件,避免网页设计人员复杂化应用程序。
  
  开发人员可以提供定制化的JSP标签库。
  
  网页设计人员能够改变和编辑网页的固定模板部分而不影响应用程序。同样,开发人员也无须一个个编辑页面而只须对组件进行合理的改变。
  
  通常,JSP允许开发人员向许多网页设计人员分发功能性应用程序。这些设计人员也不必知道Java编程语言或任何servlet代码,所以他们能够集中精力去编写HTML代码,而编程人员就可以集中精力去建立对象和应用程序。
  
  建立JSP页面
  粗略看来,JSP网页和HTML (或XML)网页非常相似——都包含用标签封装的文本(在“<>”之间被定义)。当HTML标签被用户的浏览器处理以显示网页的时候,JSP标签能够通过web服务器的处理来生成动态内容。这些JSP标签能够定义个别的操作,比如说用一个方法来调用JavaBean,或者包含标准的Java代码块(也就是所谓的scriptlet),这些代码块能够在网页被访问的时候被执行。
  
  为了了解它们如何使用,下面我们介绍了一个JSP网页的简单例子,在这个JSP网页中包含了静态HTML内容和从JavaBean生成的动态数据。当用户访问这个网页的时候,它可以显示当前的日期,并根据当前的时间增加相应的问候语(例如“早上好”和“下午好”)。为简单起见,JSP标签显示在块中:
  
  
  
  %@ page language="java" imports="java.util.*" %
  
  Welcome
  
  

  Today is

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)
  
  ?xml:namespace prefix = jsp />
  
  
  
  Day: %= clock.getDayOfMonth() %
  
  Year: %= clock.getYear() %
  
  
  
  %-- Check for AM or PM --%
  
  %! int time = Calendar.getInstance().get(Calendar.AM_PM); %
  
  %
  
    if (time == Calendar.AM) {
  
    %
  
  早上好
  
  %
  
    }
  
    else {
  
    %
  
  下午好
  
  %
  
    }
  
    %
  
  %@ include file="copyright.html" %
  
  
  
  上面的JSP例子是不是很简单?我们在JSP网页中使用了几个不同的组件。这些组件包括下面的内容:
  
  JSP action (或JSP标签)使用了多种函数并扩展了JSP的功能。JSP action使用的是一种类似XML的语法,并且被用来处理JavaBean组件。在上面的例子中,jsp:useBean action初始化了一个JavaBean ,JavaBean将在网页的后面部分被用到:
  
  
  
  如果在网页中需要获得和设置这个Bean的属性,另一个JSP action将被给出,使用的是下面的语法:
  
  
  
  
  
  当网页被编译成一个servlet的时候,Directive将被JSP引擎处理。Directive被用来设置页面级的指令、从外部文件插入数据以及制定定制的标签库。Directive被定义在%@ 和 %之间。 在上面的例子中,Directive定义了页面所使用的语言(Java),为了关联Java类需要植入代码并指定一个将要插入页面底部的HTML文件内容:
  
  %@ page language=="java" imports=="java.util.*" %
  
  %@ include file=="copyright.html" %
  
  声明与Java中的变量声明相似,它也是为了后面表达式或scriptlet的需要来定义变量。声明被定义在%! 和 %之间。在上面的例子中,“int”声明并给出了一个当前时间的相应值 (AM 或 PM):
  
  %! int time = Calendar.getInstance().get(Calendar.AM_PM); %
  
  表达式可以是变量或常量,它插在由web服务器所返回的数据里,并用%= 和 %来定义。在上面的例子中,表达式将调用JavaBean组件并在页面中插入结果数据:
  
  %= clock.getDayOfMonth() %
  
  %= clock.getYear() %
  
  Scriptlet将作为一个Java代码块植入JSP页面中。Scriptlet代码被一一插入由页面所产生的servlet中,它被定义在% 和%之间。上面例子中的scriptlet可以根据当前用户产生相应的时间和问候语:
  
  %
  
    if (time == Calendar.AM) {
  
    %
  
  早上好
  
  %
  
    }
  
    else {
  
    %
  
  下午好
  
  %
  
    }
  
    %
  
  注释部分和HTML的注释相似,当在执行的时候JSP引擎将去掉对注释的解释。这就意味着JSP注释并不返回到用户的浏览器中。不象HTML注释被定义在  
  %-- Check for AM or PM --%
  

来源:https://www.tulaoshi.com/n/20160219/1609488.html

延伸阅读
标签: SQLServer
目前在职场中很难找到非常合格的数据库开发人员。我的一个同事曾经说过:“SQL开发是一门语言,它很容易学,但是很难掌握。” 在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当您问到关于主键和外键的问题时,后面的问题...
标签: Android
安卓手机开发人员选项怎么关闭   要关闭开发者选项,其实就是跟新机一样,要将这个开发者选项隐藏掉。这里教大家一个简单的方法,非常简单。下面以图老师小编手中的中兴V5(安卓手机)为例,教大家如何隐藏或者关闭开发者选项,其他安卓手机大小异同。 一、打开手机设置应用程序全部找到设置,然后点击它,如下图所示。 ...
标签: SQLServer
在上一篇文章中,我列出了在面试SQL Server数据库开发者时会提问的一些问题,如果我对应聘者的口头回答部分感到满意,我会让他们参加TSQL编程能力的测试,没有比动手操作数据库更有效的方法了,我认为TSQL测试是考察应聘人员的好办法。 一些免责声明 即使不是全部的话,这些TSQL问题中的大部分都可以使用不同的方法解决,我所提供的答案是...
对于现在很多WEB开发人员来说,项目的效率就是一切,因为时间就是金钱。很多人都不在自己的模式里捣鼓研究了,而是用各种流行的框架和第三方平台去让项目更快的推进。今天我们要分享给大家的就是一些新鲜的WEB框架和开发工具。这些工具也是一些GEEK长时间的总结研究出的一套体系。用框架的好处就在于,只要你是正确的架构就能不用担心太多自身...
1. 保留字 C++中,保留字也称要害字,它是预先定义好的标识符。见要害字的解释。 2.要害字 C++中已经被系统定义为非凡含义的一类标识符。C++中的要害字有:autodoubleintstrUCt break elselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifstaticwhi...

经验教程

519

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部