错误:is quoted with which must be escaped when used within the value
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /index.jsp(43,38) Attribute value request.getAttribute("lineSize") is quoted with " which must be escaped when used within the value
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
at org.apache.jasper.compiler.Parser.parseQuoted(Parser.java:299)
at org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:249)
at org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:211)
at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:154)
at org.apache.jasper.compiler.Parser.parseParam(Parser.java:845)
at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1678)
at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1020)
at org.apache.jasper.compiler.Parser.parseInclude(Parser.java:872)
at org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1134)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1461)
at org.apache.jasper.compiler.Parser.parse(Parser.java:137)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at com.miyao.web.PersonServlet.doGet(PersonServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
2010-1-6 20:08:39 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet PersonServlet threw exception
org.apache.jasper.JasperException: /index.jsp(43,38) Attribute value request.getAttribute("lineSize") is quoted with " which must be escaped when used within the value
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
at org.apache.jasper.compiler.Parser.parseQuoted(Parser.java:299)
at org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:249)
at org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:211)
at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:154)
at org.apache.jasper.compiler.Parser.parseParam(Parser.java:845)
at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1678)
at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1020)
at org.apache.jasper.compiler.Parser.parseInclude(Parser.java:872)
at org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1134)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1461)
at org.apache.jasper.compiler.Parser.parse(Parser.java:137)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at com.miyao.web.PersonServlet.doGet(PersonServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
大家会清楚的看到:/index.jsp(43,38) Attribute value request.getAttribute("lineSize") is quoted with " which must be escaped when used within the value.这句话,很清楚的说明了错误发生在哪里!
于是,我们会顺着错误提示杀到代码中去检查(index.jsp),找到相应的行后,一看,发现没有错误呀,我的代码很正确呀,没有写错代码,也没有少了符号,而且""号也是正确的呀.大家可以看一下,以下就是提示错误的代码:
41 <jsp:include page="split_page.jsp">
42 <jsp:param name="jspUrl" value="<%=jspUrl %>"/>
43 <jsp:param name="lineSize" value="<%=request.getAttribute("lineSize") %>"/>
44 <jsp:param name="allRecorders" value="<%=request.getAttribute("allRecorders") %>"/>
45 <jsp:param name="keyWord" value="<%=request.getAttribute("keyWord") %>"/>
46 <jsp:param name="currentPage" value="<%=request.getAttribute("currentPage") %>"/>
47 <jsp:param name="searchFlag" value="T"/>
48 </jsp:include>
看到了吗?是的,就是这一段动态包含的代码.就像我说的,大家也看见了,43行,照常规,我们没有看出任何错误之处,对比一下其它行也都很相似.
所以,这下就把我急坏了,改了好久还是不行...最后,就想到了百老师和谷老师,就把错误信息一贴,发现已经有此问题的解决了,我打开了几个看了一下,上面基本都和我遇到的问题一样...这下就让我大开眼界了...上面说是,只要把出错位置的value=""改成value='',就不会有错了,但上面都没有说明到底是为什么?我也没管,就照上面的改一下试试...改了以后,一运行,还是出错了...但大家别急,错误的行号变了,变成了44行...也就是43行已经没有错了.是的,44行的value还不有改,我就又改了...再一运行,又出错了,而且错误的行号又变了,是的,没错,变成了45行,这下就让我觉得有意思了...我再改了45行后,我遇见性的想到如果不改46行可能还会出错,但我没有急着改,因为我想证明一下自己的想法...一运行,果然如此,45行正确了,46行出错了,哈哈.就这样,改了最后一个46行,再运行,一切正常了!!!!
大家看到这里可能也都有点晕了吧!不过,这个时候,我再仔细看一下,43行/44行/45行/46行有一个共同点,我们都知道,在定义属性时,一般,我们都是要加双引号""的,是的,他们的属性都加了双引号,而且仔细一看,在属性中拿到servlet中的request中的值时(就以43行为例):request.getAttribute("lineSize"),这里我们也为"lineSize"加上了双引号,这也是没有错的.44/45/46也都是这个样子!就是这里,以我们先前所学的知识,毫无错误,也不会想到是这里出错了!但,错误就是这里导致的.
其实,大家回忆一下,我们应该是知道这个原则的,在双引号里再写双引号是会冲突的,是不正确的.但是大家要仔细看了,我们这里面是没有双引号接着双引号写的,我们是在另一个代码中写的双引号,所以,是没有错误的!
让我们再回头看一个错误提示中的英文吧: /index.jsp(43,38) Attribute value request.getAttribute("lineSize") is quoted with " which must be escaped when used within the value.试着翻译一下,大概意思就是:引用“时必须在属性内避免使用".这一下,可能更晕了...
我们再想一想,value中写属性时,我们即可以用双引号",也可以用单引号'.
在这里也没有官方资料可以查阅,我想的话,最有可能应该是,Tomcat无法解析像43/44/45/46这种情况(如:value="<%=request.getAttribute("lineSize") %>"),双引号中还嵌入的有双引号...然后,我们再进一步分析,request.getAttribute("lineSize")中有能用双引号,是不能用单引号的,而value的双引号是可以修改成单引号的,所以,这可能也就是为什么,当我们在这种特殊的情况下,在value的属性中双引号时会出现这种错误,而当我们改成单引号时,程序确一切正常了!
其实,我们回头仔细想一想,这也不是我的推断,光看错误信息,现在想一想,其实,也就是这个原因了吧!
如有哪个高手,也遇到过这种问题,并且知道真正的原因,且我说的有问题的地方,请帮我指正一下,并批评我一下!在此,先感谢您了!我在这,也是总结一下问题,供自己学习用!希望也能帮助到遇到此困难的人!
错误:is quoted with which must be escaped when used within the value相关推荐
- ttribute value is quoted with which must be escaped when used within the value
今天做项目访问JSP时,报错:Attribute value is quoted with " which must be escaped when used within the valu ...
- JSP: quoted with which must be escaped when used within the value 报错问题解决
访问JSP时,报错:Attribute value is quoted with " which must be escaped when used within the value .相信 ...
- Attribute value is quoted with which must be escaped when used within the value 问题解决
访问JSP时,报错:Attribute value is quoted with " which must be escaped when used within the value .相信 ...
- Attribute value is quoted with “ which must be escaped when used within the value 问题解决
Attribute value is quoted with " which must be escaped when used within the value 问题解决 参考文章: (1 ...
- tomcat错误“Attribute value is quoted with which must be escaped when used within the value”
目录 错误 错误代码 错误原因 解决 正确代码一 正确代码二 正确代码三 错误 错误代码 <c:forEach var="trueName" items="< ...
- Tomcat - 解决which must be escaped when used within the value错误
Tomcat 6 下发生的错误: 代码: <tss:dateSelect prefix="b" formName="<%="form" + ...
- which must be escaped when used within the value
<html:hidden property="bean.assessSchemeId" value="<%=queryOption.getValueByFie ...
- typescript ts 错误列表
code 类型 英文描述 中文描述 1002 错误 Unterminated string literal. 未终止的字符串文本. 1003 错误 Identifier expected. 应为标识符 ...
- 遇到的Exception/error及解决办法记录汇总
一.java.net.SocketException 1.java.net.SocketException:Connection reset 首先,如果一端的Socket被关闭(或主动关闭,或因为异常 ...
最新文章
- 读完《Effective Java》后,总结了 50 条开发技巧
- mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的...
- HTTP长连接、短连接
- deep$wide keras
- 详细解析Java中抽象类和接口的区别(很容易理解错)
- list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...
- 链表的翻转(java)
- 远程桌面提示 “终端服务器超出了最大允许连接数” 的解决方法
- 2015年9月29笔试总结
- 不用身份证刷手就能坐飞机,掌静脉还能被应用在哪里领域?
- 程序员有七个等级?你又属于哪个等级呢?
- Javascript的常见数据类型以及相应操作
- 嵌入式linux程序加密,基于嵌入式操作系统uClinux实现网络安全加密系统的设计
- linux图像编辑,Photoflare:Linux下简单的开源图像编辑器
- 工作流引擎WorkFlow开源项目
- navicat导出数据库数据
- VMware Workstation 14打开虚拟机黑屏解决方法 —— 修复LSP
- vue+elementui+springboot前后端分离实现学校帖子网站,模拟“淘柳职”学校大作业
- 数据库可视化库_漂亮的javascript数据可视化库
- 信息安全-操作系统安全保护(二)