《Beginning JSP 2: From Novice to Professional》笔记(1)

Posted by 蒋波涛 27 October,2006 Views (0)Comment

JSP2.0作为最新的基于JAVA的B/S技术,带来了无与伦比的优势和巨大的改变,首先是开发方式上,JSP2.0使用了自定义tag,从而使非程序员可以以一种简洁的方式进行jsp的开发。由于JSTL实际上是依赖JSP的版本,使得恰当的的jsp容器来支持,一般而言,使用Apache Tomcat5.0及以上版本即可。

JSP中的标签有两大类别,一是标准tag,它是我们熟悉的以<jsp:>方式使用的标签;另一种是自定义标签,它是程序员为了扩展标签的类别和种类而开发的标签,JSTL也属于这一种,使用这种类型的tag时,引入方式是:
<%@ taglib uri="***" prefix="***" %>,其中url相当于标签库的位置,而prefix,则是在JSP页面中引用标签库时使用的前缀简写,相当于XML的namespace。

JSTL包括四个标签库,即Core标签库、XML标签库、国际化与格式化标签库和SQL标签库。其前缀分别推荐使用c、x、fmt和sql,当然,这种前缀完全可以由用户自己定义。为了使用这些标签库,我们需要下载JSTL的具体版本,在WEB-INF/lib文件夹中放置jstl.jar和standard.jar两个jar文件,在tld文件夹中方式JSTL的tld文件(即标签库描述文件),注意,文件夹的结构和名称大小写都不能变化。在WEB-INF文件夹的web.xml配置文件中,加入这么几段配置参数:
 <jsp-config>
  <taglib>
   <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
   <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
   <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
   <taglib-location>/WEB-INF/tld/sql.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>http://java.sun.com/jsp/jstl/xml</taglib-uri>
   <taglib-location>/WEB-INF/tld/x.tld</taglib-location>
  </taglib>
 </jsp-config>

其实大家已经可以看的出来,这个配置文件就是为了通过tag描述文件来使用jar中的具体功能。

在正式学习JSTL之前,还需要了解JSP中的变量范围域问题。在程序中,一个变量可以的范围称为作用域,这是每一个程序员都熟知的事实。同样的,在Web页面中,也存在变量作用域的问题,由于web程序的特殊性,使得程序在保留一个变量的可变范围方面具有许多独特性。JSTL支持的范围域与JSP是一致的,即page scope,这个变量只能在本页面中使用,其它页面无法访问;request scope,访问作用域,可以将一个页面的变量提交给另一个页面处理,最一般的例子是表单中的变量,都是交给专门的处理页面完成的;session scope,即session作用域,这个范围的变量可以用于确定一位用户,在购物车等例子中,为了保证一系列操作是某位用户的行为而不与其它用户发生冲突,需要采用session来保存该用户的标识,一直到用户退出站点为止;Application scope,即全局级别的变量,可以被整个web程序使用,它常常可以用于设置站点的配置信息。

JSTL中最大的改变在于,它介绍了下一代的JSP:一种expression language,它将会取代JSP中传统的java表达式
比如表达式
<%= session.getAttribute("username").getFirstName() %>
将会改变为更为简单的形式:
${sessionScope.username.firstName}
这种JSP/JSTL的expression language将会使用比JavaScript更为简单的语法。expression language并不是通用语言,它是专门为JSP设计的,它的目的是使jsp可更简单的访问数据。该语言使页面通过scopes来访问数据信息,所谓scopes是jsp环境中定义的一些按不同的生命周期划分的一个集合数据。

Related Items

Categories : JAVA Tags : JSTL  JSP  Java  
Comments
Leave a comment

Or, take a look at Archives and Categories

目录

存档