读书人

JSP+SQL连数据库的有关问题

发布时间: 2013-09-11 18:34:25 作者: rapoo

JSP+SQL连数据库的问题
我的一段用JSP+SQL连数据库的程序,哪位高手帮看看是哪错了
代码如下
<%@ page contentType= "text/html;charset=gb2312 "%>
   <%@ page import= "java.sql.* "%>
   <html>
   <body>
   <%Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();
  String url= "jdbc:microsoft:sqlserver://localhost:8080;DatabaseName=master ";
  //pubs为你的数据库的
  String user= "sa ";
  String password= "111111 ";
  
  Connection conn= DriverManager.getConnection(url,user,password);
  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  String sql= "select * from test ";
  ResultSet rs=stmt.executeQuery(sql);
  while(rs.next()) {%>
  您的第一个字段内容为: <%=rs.getString(1)%>
  您的第二个字段内容为: <%=rs.getString(2)%>
   <%}%>
   <%out.print( "数据库操作成功,恭喜你 ");%>
 
   </body>
   </html>

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens

An error occurred at line: 5 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens


org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)


org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.

报错如下:


[解决办法]
编译错误,
Statement stmt=conn.createStatement这一句少分号的原因?
[解决办法]
<%Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();

====================================================================================
可能是这一句
[解决办法]
你是不是没装jdk啊?
[解决办法]
或者是你的环境变量的设置不正确
都设置好了吗?

[解决办法]
可能是缺少异常捕获
用try{
}
catch (Exception e){
out.println(e.getMessage());
}
将你的程序放在try中试试
[解决办法]
还有结束时候记得关闭链接
rs.close();

   stmt.close();

   conn.close();
[解决办法]
说实在的,我到现在没看出这些Source有什么不对劲,又是编译错误,我觉得可能跟你的jdk有关
[解决办法]
<%Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();
这句的错
[解决办法]
你的那个 <%Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance(); 有错误了-- "microsoft "应该写成 "miscrosoft "的~~呵呵
[解决办法]
应该是手误吧~~呵呵
[解决办法]
不好意思,我高错了,请大家原谅!!
[解决办法]
没看出错误,楼上提出的问题应该我觉得都不会造成无法编译。。。。

难道是JDK?
[解决办法]
lz不防将 <%......%> 之间的空白区域全部删除,再分行,我估计你的源文件里面有非英文的空白字符。试试看。
[解决办法]
所以造成无法编译的问题。
[解决办法]
lz不防将 <%......%> 之间的空白区域全部删除,再分行,我估计你的源文件里面有非英文的空白字符。试试看。
======
这位大哥说的是啊...不知道这些字符是怎么输入的?

<%@ page contentType= "text/html;charset=gb2312 "%>
<%@ page import= "java.sql.* "%>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();
String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=master ";
String user= "sa ";
String password= "sa ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";


ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为: <%=rs.getString(1)%>
您的第二个字段内容为: <%=rs.getString(2)%>
<%}%>
<%out.print( "数据库操作成功,恭喜你 ");%>

花了我些时间,晕
[解决办法]
我把上面的程序保存在C盘下,文件名为Jspsqltest.jsp,在JCreator里边运行报出如下错误:
javac: 无效的标志: C:\Jspsqltest.jsp
用法: javac <options> <source files>
-help 用于列出可能的选项

感觉相当无奈,谁能说说这是什么原因?
[解决办法]
在写Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();这句时最好到记事本下写,我前几个星期也遇到这错误.
我的异常网推荐解决方案:org.apache.jasper.JasperException: Unable to compile class,http://www.myexception.cn/j2ee/2308.html

读书人网 >Java Web开发

热点推荐