【问题标题】:Error "org.apache.jasper.JasperException: /SearchGenre.jsp(1,20) quote symbol expected" in jspjsp 中出现错误“org.apache.jasper.JasperException: /SearchGenre.jsp(1,20) 引用符号”
【发布时间】:2023-04-10 13:15:01
【问题描述】:

我尝试通过 jboss 连接到 hyperion 数据库并运行 sql 语句。 我有以下jsp文件:

<%@ page import = java.sql.* %>
<%@ page import = java.* %>

<%@ page language="java" contentType="text/html; charset=windows-1255"
pageEncoding="windows-1255"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Insert title here</title>
</head>
<body>
 IntialContext ic = new InitialContext();
 DataSource ds = (DataSource) ic.lookup("java:/DefaultDS");
 Connection con = ds.getConnection();

 PreparedStatement prSelect = 
 con.prepareStatement("select * from public.users where user = ?");

 prSelect.getString(1,genre);

 ResultSet rs = prSelect.executeQuery();

 while (rs.next()) {
   system.out.println("FOUND!!!!!");
}
</body>
</html>

我收到此错误消息

描述服务器遇到一个内部错误()阻止 它无法满足此请求。

异常

org.apache.jasper.JasperException: /SearchGenre.jsp(1,20) 引号 预期的 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88) org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:200) org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:150) org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:162) org.apache.jasper.compiler.ParserController.getPageEncodingForJspSyntax(ParserController.java:451) org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:392) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:173) org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167) org.apache.jasper.compiler.Compiler.compile(Compiler.java:306) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:273) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

注意根本原因的完整堆栈跟踪可在 JBossWeb/2.0.1.GA 日志中找到。

我的问题是什么?

【问题讨论】:

  • 看起来您忘记添加 &lt;% %&gt; 符号来包装您的代码并使其成为 scriptlet。如果您不这样做,请使用 try/catch 块来包装它并提供您问题的确切堆栈跟踪。
  • java代码直接在html正文中?
  • 解耦表现层和业务层可以做得更好。

标签: java jsp


【解决方案1】:

您缺少一些引号符号。例如:

<%@ page import = java.sql.* %>
<%@ page import = java.* %>

这应该是:

<%@ page import="java.sql.*" %>
<%@ page import="java.*" %>

请注意,您的问题与 JDBC 无关(顺便说一句,您最好不要在 JSP 中处理)。

此外,您的最后一次导入也无关紧要:java 包中没有任何内容。除非您将自己的类放入该包中,否则这与包名称的准则相反。

最后:您当前的 JSP 页面将显示您的代码,它不会执行它。

为了避免所有这些问题,最好根本没有任何scriptlet。更多信息:How to avoid Java code in JSP files?

【讨论】:

    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多