当前位置: 代码迷 >> Eclipse >> 求帮忙:JSP连接SQL SERVER 2008 有关问题
  详细解决方案

求帮忙:JSP连接SQL SERVER 2008 有关问题

热度:34   发布时间:2016-04-23 00:19:15.0
求帮忙:JSP连接SQL SERVER 2008 问题
HTTP Status 500 - Unable to compile class for JSP: 

type Exception report

message Unable to compile class for JSP: 

description The server encountered an internal error that prevented it from fulfilling this request.

exception

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

An error occurred at line: 44 in the jsp file: /NewFile.jsp
number cannot be resolved to a variable
41:   java.util.Date date = rs.getDate(5) ;
42: %>
43:  <tr>
44:   <td><%=number%></td>
45:   <td><%=name%></td>
46:   <td><%=classnumber%></td>
47:  </tr> 


An error occurred at line: 45 in the jsp file: /NewFile.jsp
name cannot be resolved to a variable
42: %>
43:  <tr>
44:   <td><%=number%></td>
45:   <td><%=name%></td>
46:   <td><%=classnumber%></td>
47:  </tr> 
48: <%


An error occurred at line: 46 in the jsp file: /NewFile.jsp
classnumber cannot be resolved to a variable
43:  <tr>
44:   <td><%=number%></td>
45:   <td><%=name%></td>
46:   <td><%=classnumber%></td>
47:  </tr> 
48: <%
49:  }


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:199)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

原代码为:
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>

<html>
<head><title>JSP连接SQL 2008</title></head>
<body>
<%!
 public static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ;
 public static final String DBURL = "jdbc:sqlserver://localhost:1433;DatabaseName=student" ;
 public static final String DBUSER = "sa" ;
 public static final String DBPASS = "1064656308" ;
%>
<%
 Connection conn = null ;
 PreparedStatement pstmt = null ;
 ResultSet rs = null ;
%>
<%
try{
 Class.forName(DBDRIVER) ;
 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
 String sql = "SELECT number,name,classnumber FROM class" ;
 pstmt = conn.prepareStatement(sql) ;
 rs = pstmt.executeQuery() ;
%>
<center>
<table border="1" width="80%">
 <tr>
  <td>学号</td>
  <td>姓名</td>
  <td>班级</td>
 </tr>
<%
 while(rs.next()){
  int empno = rs.getInt(1) ;
  String ename = rs.getString(2) ;
  String job = rs.getString(3) ;
  float sal = rs.getFloat(4) ;
  java.util.Date date = rs.getDate(5) ;
%>
 <tr>
  <td><%=number%></td>
  <td><%=name%></td>
  <td><%=classnumber%></td>
 </tr> 
<%
 }
%>
</table>
</center>
<%
}catch(Exception e) {
 System.out.println(e) ;
}finally{
 rs.close() ;
 pstmt.close() ;
 conn.close() ; // 如果直接关闭连接也可以
}
%>
</body>
</html>



------解决思路----------------------
number,name,classnumber在哪里声明的?怎么没有看到?
------解决思路----------------------
不能编译成class ,说明格式错误,有没有写错什么,少了什么
------解决思路----------------------
  <td><%=number%></td>
  <td><%=name%></td>
  <td><%=classnumber%></td>

这三个变量都没有声明,无法在此直接使用

在上面的代码之前加上下面的声明语句,试试看

<%!
    int number = 100;
    String  name = "lilei";
    int classnumber = 12;
%>
  相关解决方案