请按ctrl+D把本页加入收藏夹
>> 网站建设 >> 您的位置    
文章内容
07-05-28 01:19:35

Tomcat4.1.12在处理自定义tag时的一个缺陷-建站心得-

       
 


>>Tomcat4.1.12在处理自定义tag时的一个缺陷<< Tomcat4.1.12在处理自定义tag时的一个缺陷1.  前言刚才在练习写一个tag时,在Tomcat4.1.12环境下运行时发现了一些奇怪的现象,经过分析和测试,发现Tomcat4.1.12在处理自定义tag时有些问题。2.  现象问题一我在tag中有一个属性设定成不可以接受请求时变量,也就是说只能接受静态值,可是我在JSP中使用时发现Tomcat4.1.12处理这种情况时跟JSP规范(我参考的是JSP1.2)的规定不符,它没有在编译时扔出错误,运行时也没有扔异常,反而是忽略掉这个不合法的参数,并且在执行tag实现类时对于该属性以空串视之。 问题二这个问题是在实验问题一时偶然发现的,当你修改tld文件后,即使重启了tomcat,如果你的JSP没有修改过,那么在请求该JSP时,你对tld文件的修改不会起作用。(我分析是JSP没有被修改,就不会被重新编译,就不会重新参考tld文件,也就不会重新分析tld文件,那么对tld文件的修改就不会起作用。)但我认为这种处理对JSP程序员修改tld文件极为不利,这种处理方式是不合理的。3.  Tomcat5.0的对比通过在Tomcat5.0的环境下做实验,Tomcat5.0下没有上述的两个问题。如果对不接受请求时变量的属性赋请求时变量,将会在请求该JSP时扔出异常。Tomcat5.0也能对tld文件的修改即时反应,甚至连tomcat都不必重启。4.  我的测试程序源码index.jsp<%@ taglib uri="/WEB-INF/tlds/mylib.tld" prefix="test0" %><%@ page language="java" %><%@ page import="java.util.*" %> <%String theValue = "maojb";%><html><body bgcolor="white"><test0:hello name="<%=("111"+theValue)%>"/><p> <%=new Date()%></body></html> HelloTag.javapackage com.mycompany; import java.io.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*; public class HelloTag extends TagSupport {private String name = "World"; public void setName(String name) {this.name = name;}public int doEndTag() {        try {        pageContext.getOut().println("Hello xiaocx " + name);        } catch(IOException e) {        }                return EVAL_PAGE;}}  mylib.tld<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib   PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"   "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">   <taglib><tlibversion>1.0</tlibversion><jspversion>1.1</jspversion><shortname>test</shortname><tag><name>hello</name><tagclass>com.mycompany.HelloTag</tagclass><bodycontent>empty</bodycontent><attribute>        <name>nam</name>        <required>yes</required>        <rtexprvalue>no</rtexprvalue>               </attribute></tag></taglib> 目录机构如下index.jspWEB-INF        cassescom    mycompany              HelloTag.class        tds            mylib.tld 

 
 
   
 

 
 
便民工具箱
 
最新文章