jsp2.0新特性

手把手教你用TI MOSFET搭建0-100mA恒流源电路(附避坑指南) 本文详细介绍了如何使用TI MOSFET SI1204D搭建0-100mA恒流源电路,包括基础原理、电路设计、PCB布局和热管理技巧。通过分步指导和避坑指南,帮助工程师实现高精度、低成本的电流控制方案,适用于LED驱动、传感器激励等多种应用场景。 阅读详情

  SUN 的新版J2EE1.4提供了在J2EE中开发Web Service的基础,对开发工具做了一些重要的增强,在应用程序部署和服务器管理方面也提供了新的标准,在集成性和安全性方面有所增强,提升了J2EE 开发Web应用程序的能力;在编程模型方面的重要变化包括JSP表达式语言、简化的标记库等;EJB 2.1中提供了新的timer服务,查询语言(QL)也有所增强;Jdbc3.0 API把通常的Jdbc API与扩充API结合起来;J2EE Connectors规范和独立于消息类型的EJB提供了对双向通信的支持。下面给大家重点介绍J2EE1.4中包含的JSP2.0、 Servlet2.4、Jdbc3.0以及EJB2.1方面的新特性。

  JSP 2.0属于J2EE 1.4平台,它在JSP 1.2基础之上增加了新的功能。它保证了向下兼容,原先使用的JSP技术在JSP 2.0中都可以支持。JSP 2.0的新功能主要包括下面几部分:

  一)运行环境变化

  1、web.xml格式变化

  我们知道JSP 1.2可以在Java 2标准版1.3版本运行,而JSP 2.0要求使用Java 2标准版1.4或更新版本,JSP 2.0使用由Servlet 2.4规定的Web程序部署描述格式。

  在Web程序描述文件web.xml中需要使用xml schema打头的格式。在web.xml中主要的变化是所有有关JSP的设置信息要放在<jsp-config>标记中。下面程序例1显示了一个web.xml大致的样子。

      例1:

      <?xml version="1.0" encoding="IS0-8859-1"?>

      <web-app xmlns=http://java.sun.com/xml/ns/j2ee

      xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

      xsi:schemaLocation=http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd

      version="2.4">

      .......

      <jsp-config>

      <taglib>  

      <taglib-uri>

      http://www.icconcept.com/ics/sample-taglib

      </taglib-uri>

      <taglib-location>

      /WEB-INF/jsp/sample-taglib.tld

      </taglib-location>

      </taglib>

      ........

      <jsp-property-group>

      <description>

      For config the ICW sample application

      </description>

      <display-name>JSPConfiguration</display-name>

      <url-pattern>/jsp/datareset.jsp</url-pattern>

      <el-ignored>true</el-ignored>

      <page-encoding>ISO-8859-1</page-encoding>

      <scripting-invalid>true</scripting-invalid>

      <include-prelude>/jsp/prelude.jspf</include-prelude>

      <include-coda>/jsp/coda.jspf</include-coda>

      </jsp-property-group>

      </jsp-config>

      </web-app>

  2、JSP设置

  在<jsp-config>标记提供了Web程序中JSP程序的设置信息。<jsp-config>包括< taglib>和<jsp-property-group>两类元素。<taglib>定义了Web程序使用的 custom tag,它的用法和以前JSP 1.2中的用法相同。<jsp-property-group>定义了一组JSP的特性。这些特性实际上对应JSP的page directive定义的特性。通过<jsp-property-group>只不过可以方便地对多个具有相同属性的JSP统一定义。

  <jsp-property-group>定义一个或多个URL样式,在<jsp-property-group>中定义的属性会适用于匹配这些URL样式的所有JSP文件。在<jsp-property-group>中的属性可以定义以下设置:

      (1)允许或禁止使用表达式语言(EL)

  在<jsp-property-group>中可以设定是否允许对应<url-pattern>的JSP使用JSTL表达式语言 (EL)。如果<el-ignored>属性标记被设定为false,JSP中的EL表达式会被处理;如果是true,Web容器会在转换 JSP时忽略EL表达式。

      (2)允许或禁止使用scripting

  <scripting-invalid>属性可以允许或禁止使用JSP的脚本语言(scripting)。如果这个属性标记对应为true,即scripting元素被禁止,则JSP中不能使用scriptlet,scripting表达式和declaration,否则会有转换错误。当这个属性标记为false时,JSP可以像在1.2版本之前那样使用脚本语言。

      (3)声明JSP编码

  通过<page-encoding>标记可以设置对应<url-pattern>的JSP网页的编码。这个属性对应每个JSP中的pageEncoding属性,Web容器将根据这个属性对JSP内容进行编码。

      (4)对应隐含包括(Implicit Includes)

  在<jsp-property-group>中可以在对应JSP中加入抬头(preludes)和结尾(coda),使用< include-prelude>和<include-coda>属性可以设定在JSP网页中包括的preludes和coda的 jspf文件。这些文件的位置相对于当前Web程序的context。当有超过一个preludes或coda元素在<jsp-property- group>中时,JSP会按照其顺序加入到内容中。

   
  二)引入表达式语言(EL)

  JSP 2.0的一个主要特点是它支持表达语言(expression language)。JSTL表达式语言可以使用标记格式方便地访问JSP的隐含对象和JavaBeans组件,JSTL的核心标记提供了流程和循环控制功能。自制标记也有自定义函数的功能,因此基本上所有seriptlet能实现的功能都可以由JSP替代。在JSP 2.0中,建议尽量使用EL而使JSP的格式更一致。

  在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:

  <%@ page isELIgnored="true|false"%>

  如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000 % 20}</p>在isELIgnored="true"时输出为${2000 % 20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。

  虽然JSP 2.0可以使JSP中完全使用表达语言而避免scriptlet,在实际编程中,应该根据程序的功能要求和编程人员的自身条件选择合适的方式。使用表达语言的JSP比较方便规整,但是由于需要将标记进行转换,在第一次被调用时会比较慢;有些编程人员由于对Java比较了解,因而更习惯JSP 1.2之前的编程方式,因此,在使用中应因地制宜地选择适用的编程方法。 

  三)SimpleTag

  JSP 2.0中加入了新的创建自制标记的API,javax.servlet.jsp.tagext.SimpleTag定义了用来实现简单标记的接口。和 JSP 1.2中的已有接口不同的是,SimpleTag接口不使用doStartTag()和doEndTag()方法,而提供了一个简单的doTag()方法。这个方法在调用该标记时只被使用一次。而需要在一个自制标记中实现的所有逻辑过程、循环和对标记体的评估等都在这个方法中实现。从这个方面来讲, SimpleTag和IterationTag可以达到同等的作用。但SimpleTag的方法和处理周期要简单得多。在SimpleTag中还有用来设置JSP内容的seUspBody()和getJspBody()方法。Web容器会使用setJspBody()方法定义一个代表JSP内容的 JspFragment对象。实现SimpleTag标记的程序可以在doTag方法中根据需要多次调用getJspBody().invoke()方法以处理JSP内容。

  例如,程序例2 SimpleTag根据指定的次数(times)进行循环并输出当前序号(sequence)。程序的结构比较简单,所有逻辑都在doTag方法中实现。

  例2:

    packageICW.taglib;

    importjavax.servlet.jsp.JspException;

    importjavax.servlet.jsp.tagext.SimpleTagSupport;

    importjava.util.HashMap;

    importjava.io.IOException;

    public class IterationSimpleTag extends SimpleTagSupport{

    privateint times;

  public void setTimes(int_times){

      this.times=_times;

          }

      public void doTag() throws JspException,IOException{

      HashMapparams=new HashMap();

      for(inti=0; i<times;i++){

      params.put("sequence",String.valueOf(i+1));

      getJspBody().invoke(null,params);

        }

       }

      }

  这个标记的TLD文件内容如下,它使用了XML schcma定义标记的使用方法。

      程序例3如下:

      <?xml version="1.0" encoding="UTF-8" ?>

      <taglibxmlns=http://java.sun.com/xml/ns/i2ee

      xmlns:xsi=http://WWW.w3.org/2001/XMLSchema-instance

      xsl:schemaLocation=http://java.sun.com/xml/ns/j2ee web-jsptaglihrary_2_0.xsd

      version="2.0">

    <taglib>

      <tiib-version>1.0</tlib-version>

      <short-name>Jwad book simple tag</short-name>

      <uri>/JwadSimpleTag</uri>

      <description>Simple Tag Handler</description>

      <tag>

      <name>iteration</name>

      <tag-class>ICW.taglib.IterationSimpleTag</tag-class>

      <body-content>scriptless</body-content>

      <description>Iteration Tag</description>

      <variable>

      <description>Current iterationnumber</description>

      <name-given>sequence</name—given>

      </variable>

      <attribute>

      <name>times</name>

      <required>true</required>

      <rtexprvalue>true</rtexprvalue>

      </attribute>

      </tag>

     </taglib>

  程序例4中的JSP使用上面例3中定义的IterationSimpleTag,它根据Web请求参数中给定的“times”的值进行一定次数的循环。在每次循环中将输出"sequence"的值。

      例4:

      <%@ taglib prefix="ictag" uri="/WEB-INF/ics-jsp2.tld" %>

      <HTML><HEAD><TITLE>Simple Tag Sample</TITLE></HEAD>

      <BODY>

      <CENTER>

      <FONT COLOR='#009999' SIZE='4' face='Arial'>

      <STRONG>Interation Simple Tag</STRONG>

      </FONT>

      </CENTER>

      <HR>

      <c:setvar="time" value="${param.times}"/>

      <p><B>Reminder:</B></p><br>

      <ictag:iteration times="${times}">

      This is the ${sequence} Of ${times} times of reminder<br>

      </ictag:iteration>

      </body>

      </html>

  四)使用JSP fragment

  JSP 2.0中的一个主要功能是JSP fragment,它的基本特点是可以使处理JSP的容器推迟评估JSP标记属性。我们知道一般JSP是首先评估JSP标记的属性,然后在处理JSP标记时使用这些属性,而JSP fragment提供了动态的属性。也就是说,这些属性在JSP处理其标记体时是可以被改变的。JSP需要将这样的属性定义为 javax.servlet.jsp.tagext.JspFragment类型。当JSP标记设置成这种形式时,这种标记属性实际上的处理方法类似于标记体。在实现标记的程序中,标记属性可以被反复评估多次。这种用法称为JSP fragment。JSP fragment还可以定义在一个SimpleTag处理程序中使用的自制标记动作。像前面例子说明的,getJspBody返回一个 JspFragment对象并可以在doTag方法中多次使用。需要注意的是,使用JSP fragment的JSP只能有一般的文本和JSP action,不能有scriptlet和scriptlet表达式。

  我们可以简单地认为JSP fragment是一段可以重复使用的JSP。一段JSP fragment可以被传递到另一个JSP中并被使用。与JSP include概念不同的是,JSP fragment一般功能比较短小简单而且重复使用率高。

  JSP fragment一般在<jsp:attribute>标记体内或<jspcbody>标记体内定义。每次当含有JSP fragment的标记被使用时,Web容器生成一个JspFragment对象,这个对象和当前JSP的page scope联系起来。同时,这个JspFragment对象和包含它的父标记建立联系。JspFragment对象可以有两种调用方式:使用Java编写的标记处理程序,或者使用标记文件(tag file)。标记文件可以使用<jsp:invoke>,或者<jsp:doBody>动作使用JSP fragment。  JSP标记文件可以和JSP fragment共同工作。CustomTag都是以编程方式实现的。JSP标记文件是用文本文件格式(JSP语法)实现自制标记,这也是JSP 2.0的一个主要新功能。一个标记文件可以对应一个标记,可以不需tld文件定义该标记的方法。这样,即使编程人员不熟悉Java,也可以使用JSP语法定义自己的标记。标记文件一般使用.tag为后缀并放在Web程序的/WEB-INF目录下。

  程序例5中的taskstatus.jsp使用了两个JSP fragment。这个JSP的功能是显示一组Task的名称和完成日期,它通过<jsp:attribute name="...">定义了两段JSPfragment(名称为onSehedule和delayed)。在<jsp: attribute>标记内的JSP就是JSPfragment,而<jsp:attribute>标记被一个<ietag: listTasks>包围。这个标记是一个通过标记文件定义的自制标记,它的定义文件在/WEB-INF/tags目录下。标记文件的名称和标记名称一致为“listTasks.tag"。这个标记会使用到前面定义的两个JSP fragment。

  例5:

    <%@ taglib prefix="ictag" tagdir="/WEB-INF/tags" %>

    <HTML><HEAD><TITLE>JSP Fragment Sample</TITLE></HEAD>

    <BODY>

      <CENTER>

      <FONT COLOR='#009999' SIZE='4' face='Arial'>

      <STRONG>JSP Fragment Sample Using Tag Files</STRONG>

      </FONT>

      </CENTER>

      <HR>

      <h2>Tasks</h2>

      <ietag:listTasks>

      <jsp:attribute name="onSchedule">

      <td>

      Name:${name}<br/>

      </td><td>

      Date:${date}

      </td>

      </jsp:attribute>

      <jsp:attribute name="delayed">

      <td>Name:${name}<br/>

      </td><td>

      <font color="red">Plan:<strike> ${pianDate}</strike></font><br/>

      <b>Actural:${actDate}</b>

      </td>

      </jsp:attribute>

      </ictag:listTasks>

      </BODY>

      </HTML>

  五)其他特性

  JSP2.0还有一些其他特性变化,比如严格修正了I18N的语法规则,改进JSP对应XML语法从而允许使用namespaces等。这些并不是核心功能,大家可以参照java.sun.com的有关资料了解功能的细节,这里就不再阐述。

L2-028 秀恩爱分得快(测试点3说明) 古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友? 阅读详情

相关推荐

新版的jsp信息分类查询系统

它基本上实现了mvc,文档里有更详细的介绍

JSP2.0入门

JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的、可免费获取的规范,也是J2EE(Ja va 2 Enterprise Edition)规范的重要组成部分。JSP2.0版是对JSP1.2的升级,增加了 一些有趣的新特性JSP2.0的目标是: 1 使动态网页的设计更加容易 ...

老中医 335

【更新至2023年】2005-2023年全国及31省绿色信贷水平测算数据(含原始数据+计算过程+结果).xls

2005-2023年各省绿色信贷水平测算数据(含原始数据+计算过程+计算结果)1、时间:2005-2023年2、来源:工业统计NJ、统计NJ、其中2017年采用插值法填补,2023年数据整理自经济普查NJ20233、范围:31省4、方法说明:选取各省六大高耗能产业利息支出占工业产业利息总支出的比率作为反向指标来衡量绿色信贷水平;六大高能耗产业为:化学、石油、电力热力、黑色金属、有色金属、非金属5、参考文献:谢婷婷,刘锦华.绿色信贷如何影响Z国绿色经济增长?

2002年的J2EE学习笔记

J2EE学习笔记1. JSP1.1 什么是jsp,它有什么用途JavaServer Pages技术是在J2EE平台建立包含诸如HTML,DHTML,JHTML和XML等动态Web内容的应用Java技术。JavaServer Pages技术使动态网页内容的生成更加简单但是具有最大的灵活性和能力  1.2 什么是jsp,它有什么用途l         HTML(网页)是静态

渔歌唱晚 1571

2024年最新JSP基础和EL表达式、JSTL(1),springcloud实战教学

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣,本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

2401_84689803的博客 1021

jsp版本的特征

JSP 2.0属于J2EE 1.4平台,它在JSP 1.2基础之上增加了新的功能。它保证了向下兼容,原先使用的JSP技术在JSP 2.0中都可以支持JSP 2.0的新功能主要包括下面几部分: ()运行环境变化 1、web.xml格式变化 我们知道JSP 1.2可以在Java 2标准版1.3版本运行,而JSP 2.0要求使用Java 2标准版1.4或更新版本JSP 2.0使用由Se

草雅空间 3979

atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性

atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性   1.1. Servlet和JSP规范版本对应关系:1 1.2. Servlet2.5一些变化的介绍: 1 1.3. Jsp2.02 1.4. Jsp2.12 1.5. Jsp2.2 (sinbsheo3       Servlet/JSP规范和JDK版本:   1.1. ...

weixin_33896726的博客 283

J2EE1.4新特性JSP 2.0新特性

 SUN 的新版J2EE1.4提的增强,在应用程序部署和强,提升了J2EE开发Web应简化的标记库等;EJB 2.1API把通常的Jdbc API与扩供了对双向通信的支持。下Jdbc3.0以及EJB2.1方面的 供了在J2EE中开发Web Service服务器管理方面也提供了新的标用程序的能力;在编程模型方面中提供了新的timer服务,查询充API结合起来;J2EE Connecto...

weixin_30700977的博客 226

JSP 2.0新特性

JSP 2.0属于J2EE 1.4平台,它在JSP 1.2基础之上增加了新的功能。它保证了向下兼容,原先使用的JSP技术在JSP 2.0中都可以支持JSP 2.0的新功能主要包括下面几部分: ()运行环境变化 1、web.xml格式变化 我们知道JSP 1.2可以在Java 2标准版1.3版本运行,而JSP 2.0要求使用Java 2标准版1.4或更新版本,JS...

55

jsp 2.0 新特性

JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的、可免费获取的规范,也是J2EE(Ja va 2 Enterprise Edition)规范的重要组成部分。JSP2.0版是对JSP1.2的升级,增加了 一些有趣的新特性JSP2.0的目标是: ?使动态网页的设计更加容易 ?简化...

brogrn的博客 320

JavaEE复习笔记(4)——JSP2和Servlet3.0新特性

JSP2 新特性 1、JSP 2 主要增加了如下的新特性: ·直接配置JSP属性。 ·表达语言 ·简化自定义标签API ·Tag文件语法。 2、如需使用JSP2语法,其web.xml文件必须使用Servlet2.4以上版本的配置文件。Servlet2.4以上版本的配置文件的根元素写法如下: ”1.0”, encoding=”GBK”?> 不

<code> I am a coder </code> 1409

Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性

atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性   1.1. Servlet和JSP规范版本对应关系:1 1.2. Servlet2.5一些变化的介绍: 1 1.3. Jsp2.02 1.4. Jsp2.12 1.5. Jsp2.2 (sinbsheo3      

629

JSP2.0新特性

一、JSP定义 JSP 属性定义使用元素配置,主要包括如下四个方面。 ·是否允许使用表达语言:使用元素确定,默认值为false 。 ·是否允许使用Java 脚本:使用元素确定,默认值为false 。 ·声明JSP 页面的编码:使用元素确定。 ·使用隐式包含:使用和元素确定。 例: [code="XML"] /test1.jsp ...

GoodGoodStudy_DayDayUp 228

javaweb学习总结(二十五)——jsp简单标签开发()

一、简单标签(SimpleTag)   由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。    实现SimpleTag接口的标签通常称为简单标签。简单标签共定义了5个方法: setJspContext方法 setPare...

weixin_34038652的博客 282

jsp2.0+中的标签文件,JSP Fragment技术

刚进新公司不久,今天在看到项目中用到了.tag文件。刚開始我还以为这个是第三方类似freemarker的模板技术。问了下项目组的其它人员,原来这是jsp2.0以来就有的JSP Fragment技术。曾经做项目的时候从来没实用这种方式,要公用就用用jsp中的include和jsp:include的方式。事实上JSP Fragment也有include的作用,可是它更像第三方sitemesh技...

weixin_33708432的博客 190

Jsp2.0新增标签制作方法-TagFile

现在制作自定义标签有以下几种方式,一个是继承TagSupport或者TagBodySupportJSP2.0中新增了继承SimpleTag,还有一种方式,就是使用TagFile,这也是JSP2.0中特有的制作自定义标签的方式这是Tag File功能很简单,就是动态参数相加,如果大于1000就执行大于1000的代码(采用红色显示),反之则使用红色显示 ...@ tag pag

我的世界我的梦 4389

JSP1.0/JSP2.0

JSP2.0JSP1.0新增功能如下:        (1)Expression Language;        (2)新增Simple Tag和Tag File;        (3)web.xml新增元素Expression Language            JSP传统方法:           String str_count=request.getPa

!Java 2203

JSP 2.0新指令

JSP2.0新添加了一些新指令。   这些指令包括: 1  提示错误信息 2  提供参数                              3  定义XML元素 4  定义属性 5  定义元素体 6  :求标签内容值 7  调用标签片段 8  元素指定文件类型声明 9  定义标签库标准元素和命名空间 10  封装模版数据

china1000的专栏 951
上一篇: Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associat
下一篇: jsp 响应内容不完整
microfhu
博客等级 码龄15年 36粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值