mko*_*yak 6 java tomcat jsp-tags
我有一个问题,标签文件中的某些属性会在下次使用标签时留下来.
我认为这是因为Tag类正在被加载,然后同一个实例被重用于每次调用.所以我在以后的调用中没有设置的属性不像我期望的那样是空的,并且包含陈旧的值!
我希望不再发生这种情况.有谁知道tomcat 6中的设置控制是什么?
Tomcat 7.0使用标记池:
http://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html
JSP自定义标记池 - 现在可以池化和重用为JSP自定义标记实例化的java对象.这显着提高了使用自定义标记的JSP页面的性能.
该页面还说web.xml可以包含"enablePooling"选项,并且其默认值为true.
所以我想说禁用标签重用不是一个好主意,因为它会导致一些性能损失.
Tomcat 7.0保证标记类的状态在doStartTag()和doEndTag()之间保持不变:
http://tomcat.apache.org/tomcat-7.0-doc/jspapi/javax/servlet/jsp/tagext/Tag.html
可以在标记处理程序上调用doStartTag和doEndTag方法.在这些调用之间,假定标记处理程序保持必须保留的状态
但同样的段落也在括号内表示该对象应该在以下后保留其属性:
在doEndTag调用之后,标记处理程序可用于进一步调用(并且它应该保留其属性).
所以我所做的就是在doEndTag()返回之前将所有局部变量重置为默认值.我没有找到关于如何实现Tomcat标记池和重用的解释(我猜是TagHandlerPool.java)所以我认为这是最安全的选择.
| 归档时间: |
|
| 查看次数: |
4176 次 |
| 最近记录: |