2014-09-06 60 views
0

我嘗試通過jboss連接hyperion數據庫並運行sql語句。 我有跟隨着JSP文件:錯誤「org.apache.jasper.JasperException:/SearchGenre.jsp(1,20)quote symbol expected」in 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日誌提供了根本原因的完整堆棧跟蹤。

我的問題是什麼?

+0

看起來你忘了添加'<% %>'符號來包裝你的代碼並使它成爲scriptlet。如果你不這樣做,那麼使用'try/catch'模塊來包裝它,並提供你的問題的確切堆棧跟蹤。 – 2014-09-06 14:36:19

+0

直接在html body內的java代碼? – SparkOn 2014-09-06 14:38:14

+0

您可以通過解耦表示層和業務層來做得更好。 – BatScream 2014-09-06 14:46:39

回答

1

您缺少一些報價符號。例如:

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

這應該是:

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

請注意,您的問題無關,與JDBC(這順便說一句,你會不理想的JSP內把手)。

此外,您的最後一次導入無關緊要:包java中沒有任何內容。除非您將自己的課程放在該軟件包中,這與軟件包名稱的指導方針相反。

最後:你目前的JSP頁面將會顯示你的代碼,它不會執行它。

爲了避免所有這些問題,最好不要使用任何腳本根本就是。更多信息:How to avoid Java code in JSP files?