在如下调用时出错:
<jsp:include page="fastpost.jsp">
<jsp:param name="returl" value="<%=Url.encode(****) %>" />
</jsp:include>
这里,在 value 中只是使用了 URL 而已。
然后报错:
Attribute value Url.encode(****) is quoted with " which must be escaped when used within the value
啊,无语,在另一个页面中这么写就没错啊?
Google。
发现说是什么 apache 升级到 6.0 后出现的 bug。
详情见:
[#MMB-1706] quoted must be escaped - MMBase
然后跟踪链接,这里说的很详细了:
Possible user code changes required when we upgrade to Tomcat 6.0.18
按照上面的说法,这么改写:
<jsp:include page="fastpost.jsp">
<jsp:param name="returl" value='<%=Url.encode(****) %>' />
</jsp:include>
其实只是把 value="" 改成 value=''。
对于上面这个问题我分别用Tomcat5.5 安装版和 Tomcat6.0.2解压版测试了一下,果然在Tomcat6.0.2下面提示value后面要使用单引号。。
我想上面这个把双引号改成单引号的做法是不可接受的。因为我们的程序已经写好了,难道全部改成单引号?
再查GOOGLE,上面有人说使用Tomcat6.0的解压版不出错,而安装版会出现这个问题。。不过在我的测试中Tomcat6.0的解压版也是有问题的。。。所以再看
可以通过设置System Properties来改变tomcat的默认行为:
org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING
If false the requirements for escpaing quotes in JSP attributes will be relaxed so that a missing required quote will not cause an error. If not specified, the specification compliant default of true will be used.
打开网址:http://tomcat.apache.org/tomcat-5.5-doc/config/systemprops.html
可以看到,我们可以修改这个配置,即可解决这个问题
所以解决这个问题的最终办法是:
修改Tomcat目录:D:\Java\tomcat-6.0.20\conf下面的catalina.properties文件,在最后面加入:
org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
即可。
分享到:
相关推荐
**Tomcat5.0与Tomcat6.0详解** Tomcat是Apache软件基金会下的Jakarta项目中的一个核心项目,是一款非常流行的开源Java Servlet容器。它实现了Java Servlet和JavaServer Pages(JSP)规范,用于部署和运行Java Web...
Tomcat 6.0是5.5版本的升级,支持Servlet 2.5和JSP 2.1规范。安装和配置流程与5.5版本类似,但有一些关键更新: 1. **下载**:同样从Apache官网获取Tomcat 6.0的安装包,如`apache-tomcat-6.0.16.exe`。 2. **Java...
【标题】"Tomcat6.0 Tomcat6.0" 指的是Apache Tomcat服务器的第六个主要版本。Tomcat是一款开源的Java Servlet容器,主要用于实现Java Server Pages (JSP)、Servlet以及WebSocket等Java web应用程序的部署与运行。它...
Tomcat 6.0 Tomcat 6.0 Tomcat 6.0
标题中的“tomcat6.0”指的是Apache Tomcat 6.0版本,这是一个开源的Java Servlet容器,主要用于部署和运行Java EE(Enterprise Edition)应用程序,特别是JSP(JavaServer Pages)和Servlet。Tomcat作为轻量级应用...
tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档
《Tomcat 5.0与6.0:历史、特性与升级分析》 Apache Tomcat,作为开源且流行的Java Servlet容器,一直以来都是Web应用程序部署的重要选择。本篇将深入探讨Tomcat 5.0和6.0这两个版本,分析它们的关键特性、改进以及...
tomcat6.0下载 tomcat6.0下载 tomcat6.0下载 tomcat6.0下载tomcat6.0下载 tomcat6.0下载tomcat6.0下载tomcat6.0下载tomcat6.0下载tomcat6.0下载tomcat6.0下载tomcat6.0下载
总结,Tomcat 6.0源码分析是一个深入了解Java Web服务器运行机制的过程,这不仅有助于我们理解Web服务器的工作原理,还能帮助我们优化应用性能、排查问题,甚至为开发自定义服务器提供基础。通过深入研究`apache-...
描述"tomcat 9.0和6.0双版本"暗示我们将比较这两个版本,分析它们的差异、更新内容以及在不同场景下的适用性。 **Apache Tomcat简介** Apache Tomcat是一款开源的Java Servlet容器,用于运行Java Web应用程序,...
【标题】"Tomcat-6.0 及 admin 补丁" 涉及到的是Apache Tomcat服务器的6.0版本以及其管理界面(admin)的补丁更新。Apache Tomcat是一款开源的Java Servlet容器,它实现了Java EE的Web应用服务规范,包括Servlet、...
【Tomcat6.0】: 在2006年推出的Tomcat 6.0是针对Java EE 5规范的,其中包含以下关键改进: 1. 支持Java EE 5:包括Servlet 2.5和JSP 2.1规范,引入了更多的API和功能,如Annotations,用于简化部署和配置。 2. 服务...
### Tomcat 6.0 修改启动内存设置及 Java JVM 参数配置详解 #### 一、背景与目的 在部署和运行 Java Web 应用时,合理地配置应用服务器(如 Apache Tomcat)的内存是非常重要的。这不仅可以提升应用程序的性能,还...
Tomcat 6.0则是在2006年推出,作为5.5的升级版,主要亮点在于支持Servlet 2.5和JSP 2.1规范。这些新规范带来了更多API的扩展和优化,使得开发更加灵活。Tomcat 6.0还引入了对Java EE 5的部分支持,包括Java ...
Apache Tomcat 6.0是Java Web应用服务器,主要用于运行基于Java Servlet和JavaServer Pages (JSP)的应用程序。它是Apache软件基金会Jakarta项目的一部分,以其开源、免费和高效的特性深受开发者喜爱。在这个版本中,...
在本压缩包中,您将找到Tomcat的6.0版本和7.0版本的源代码,这对于理解其内部工作原理、进行定制开发或优化性能具有极大的价值。 首先,让我们深入了解一下Tomcat 6.0。这个版本是Apache Tomcat的一个重要里程碑,...
10. **升级与迁移**:随着技术发展,Tomcat后续发布了更高版本,如7.0、8.0、9.0等,开发者需要了解如何从6.0迁移到新版本,以利用新功能并解决潜在的安全问题。 综上所述,Tomcat6.0作为一款重要的Java Web应用...
【描述】:“tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版” 描述中的重复强调了Tomcat6.0的安装版,暗示了这个压缩包可能是为用户提供了一键式的安装体验,帮助用户...
Tomcat 6.0是一款广泛使用的开源Web服务器和Java应用服务器,主要负责运行基于Java Servlet和JavaServer Pages(JSP)的应用程序。该版本在2006年发布,为开发者提供了轻量级、高性能的Java web应用部署平台。下面...
【标题】"tomcat+apache 6.0集成打包"涉及的是在服务器环境中整合Apache HTTP Server与Apache Tomcat的常见技术实践。这个压缩包包含了Apache 2.2.8和Tomcat 6.0.16这两个特定版本,以及JK模块(即mod_jk)的2.0.55...