JSP连接Access数据库500错误,实在不会改,求帮忙新手
<%@pagecontentType="text/html";charset=Gb2312"import="java.util.*"import="java.sql.*"...
<%@ page contentType="text/html";charset=Gb2312" import="java.util.*" import="java.sql.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>JDBC-ODBC访问Access实例</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body bgcolor=LightBlue>
<%
//加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立于ACCESS数据库连接,源名称为jspexdsn
Connection con=DriverManager.getConnection("jdbc:odbc:jspexdsn");
//不设置数据源,将连接信息直接写在连接字符串中
// String datapath=application.getRealPath("/database/jspex.mdb");
// Connection con=DriverManager.getConnection("jdbc:odbc:driver={Driver do Microsoft Access(*.mdb)};dbq="+datapath);
//创建语句(Statement)对象
Statement statement=con.createStatement();
//执行SQL语句,返回结果集(ResultSet对象)
ResultSet rs=statement.executeQuery("Select*from student");
%>
<table align=center border=1>
<caption>学生成绩表</caption>
<tr align=center>
<td>学生姓名</td><td>性别</td><td>班级</td>
<td>语文</td><td>数学</td><td>物理</td><td>化学</td>
</tr>
<%
//对结果集进行处理(以表格形式显示)
while(rs.next())
{
out.println("<tr align=center>");
out.println("<td>"+rs.getString("name")+"</td>");
out.println("<td>"+rs.getString("sex")+"</td>");
out.println("<td>"+rs.getString("class")+"</td>");
out.println("<td>"+rs.getString("chinese")+"</td>");
out.println("<td>"+rs.getString("maths")+"</td>");
out.println("<td>"+rs.getString("physics")+"</td>");
out.println("<td>"+rs.getString("chemistry")+"</td>");
out.print("</tr>");
}
rs.close();
statement.close();
con.close();
%>
</table>
</body>
</html>
错误说是空指针问题好像是
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /access.jsp(1,1) Unterminated <%@ page tag
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs. 展开
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>JDBC-ODBC访问Access实例</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body bgcolor=LightBlue>
<%
//加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立于ACCESS数据库连接,源名称为jspexdsn
Connection con=DriverManager.getConnection("jdbc:odbc:jspexdsn");
//不设置数据源,将连接信息直接写在连接字符串中
// String datapath=application.getRealPath("/database/jspex.mdb");
// Connection con=DriverManager.getConnection("jdbc:odbc:driver={Driver do Microsoft Access(*.mdb)};dbq="+datapath);
//创建语句(Statement)对象
Statement statement=con.createStatement();
//执行SQL语句,返回结果集(ResultSet对象)
ResultSet rs=statement.executeQuery("Select*from student");
%>
<table align=center border=1>
<caption>学生成绩表</caption>
<tr align=center>
<td>学生姓名</td><td>性别</td><td>班级</td>
<td>语文</td><td>数学</td><td>物理</td><td>化学</td>
</tr>
<%
//对结果集进行处理(以表格形式显示)
while(rs.next())
{
out.println("<tr align=center>");
out.println("<td>"+rs.getString("name")+"</td>");
out.println("<td>"+rs.getString("sex")+"</td>");
out.println("<td>"+rs.getString("class")+"</td>");
out.println("<td>"+rs.getString("chinese")+"</td>");
out.println("<td>"+rs.getString("maths")+"</td>");
out.println("<td>"+rs.getString("physics")+"</td>");
out.println("<td>"+rs.getString("chemistry")+"</td>");
out.print("</tr>");
}
rs.close();
statement.close();
con.close();
%>
</table>
</body>
</html>
错误说是空指针问题好像是
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /access.jsp(1,1) Unterminated <%@ page tag
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs. 展开
2个回答
展开全部
<%@ page contentType="text/html";charset=Gb2312" import="java.util.*" import="java.sql.*" pageEncoding="utf-8"%>
修改成
<%@ page contentType="text/html;charset=Gb2312" import="java.util.*" import="java.sql.*" pageEncoding="utf-8"%>
text/html后面多了一个引号,还有就是这个修改了也是有问题,前面指定的GB2312,后面又用pageEncoding="utf-8",就矛盾了
contentType="text/html;charset=Gb2312" 等于 pageEncoding="GB2312"
修改成
<%@ page contentType="text/html;charset=Gb2312" import="java.util.*" import="java.sql.*" pageEncoding="utf-8"%>
text/html后面多了一个引号,还有就是这个修改了也是有问题,前面指定的GB2312,后面又用pageEncoding="utf-8",就矛盾了
contentType="text/html;charset=Gb2312" 等于 pageEncoding="GB2312"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询