【问题标题】:error faced while working on jsp and mysql处理 jsp 和 mysql 时遇到的错误
【发布时间】:2012-01-27 15:46:04
【问题描述】:

在创建登录 jsp 页面时,输入用户名和密码并单击提交时出现此错误...

org.apache.jasper.JasperException: /loginbean.jsp (line: 9, column: 57) Attribute value request.getParameter("userName") is quoted with " which must be escaped when used within the value
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:89)
org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:280)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:229)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:162)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:153)
org.apache.jasper.compiler.Parser.parseSetProperty(Parser.java:913)
org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1134)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1451)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1664)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1002)
org.apache.jasper.compiler.Parser.parseUseBean(Parser.java:958)
org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1136)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1451)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

更新 1

使用的JSP代码是

<jsp:useBean id="db" scope="request" class="logbean.LoginBean" >

<jsp:setProperty name="db" property="userName" value="%=request.getParameter("userName")%>"/>

<jsp:setProperty name="db" property="password" value="%=request.getParameter("password")%>"/>

</jsp:useBean>

【问题讨论】:

  • 你的jsp代码请...特别是loginbean.jsp (line: 9, column: 57)
  • "/> "/> 使用Bean>
  • 总是编辑有问题的,因为有问题你可以把它格式化...我会更新它...
  • 您的LoginBean 代码请...
  • 检查这个...roseindia.net/jsp/jsp-bean-setproperty.shtml,这可能对你有帮助

标签: jsp jstl scriptlet


【解决方案1】:

您的 scriptlet 标记中缺少大括号:

<jsp:setProperty name="db" property="userName" value="%=request.getParameter("userName")%>"/>
<jsp:setProperty name="db" property="password" value="%=request.getParameter("password")%>"/>

应该是:

<jsp:setProperty name="db" property="userName" value="<%=request.getParameter("userName")%>"/>
<jsp:setProperty name="db" property="password" value="<%=request.getParameter("password")%>"/>

但是,我一般建议不要使用 scriptlet。您可以绕过使用这样的设置属性,并且可以通过使用带有 JSTL 的隐式 param 对象来访问对象。这当然取决于 JSP 的其余部分在做什么,但它被认为是最佳实践。

例如:

User name is: <c:out value="${param.userName}" />

【讨论】:

  • 实际上我关注了这篇文章roseindia.net/jsp/loginbean.shtml 并发现错误我直接下载了代码并使用它放置在我的网络服务器中同样的问题....我使用的是 apache 7 和 jdk1.7
  • @S.A.Rahman:就代码 sn-ps 中显示的“最佳实践”而言,Roseindia.net 是最差的来源。将该网站列入您的黑名单,然后阅读官方 Oracle 教程和/或真正的书籍。
猜你喜欢
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
相关资源
最近更新 更多