jsp连接数据库一直报错,求帮忙看下,谢谢

<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.*"%>
<html>
<body>
<%
    String tablename=request.getParameter("tablename");
    if(tablename==null) tablename="";
    byte[] b=tablename.getBytes("ISO-8859-1"); tablename=new String(b);
    out.println(tablename);

    final String DRIVER = "org.gjt.mm.mysql.Driver";
    final String DURL = "jdbc:mysql://localhost:3306/application";
    final String DUSER = "root";
    final String DPASS = "594daidai";
        Connection conn = null;     
        try{
            Class.forName(DRIVER);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
        try{
            conn = DriverManager.getConnection(DURL,DUSER,DPASS);
        }catch(SQLException e){
            e.printStackTrace();
        }   
        out.println(conn);      
        try{
            conn.close();       
        }catch(SQLException e){
            e.printStackTrace();
        }
%>
</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: An exception occurred processing JSP page /bookMinage/docreatetable.jsp at line 28

25:         }   
26:         out.println(conn);      
27:         try{
28:             conn.close();       
29:         }catch(SQLException e){
30:             e.printStackTrace();
31:         }


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

java.lang.NullPointerException
    org.apache.jsp.bookMinage.docreatetable_jsp._jspService(docreatetable_jsp.java:82)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)  

conn.close(); 这句报空指针, 说明你之前的连接没有获取到,肯定是上面的语句抛了异常
建议你按照如下代码调试,就可以找到问题所在了,有可能是没有找到驱动的JAR,有可能用户名密码不对,具体看异常打印吧。

    Connection conn = null;     
    try{
        Class.forName(DRIVER);
        conn = DriverManager.getConnection(DURL,DUSER,DPASS);
        out.println(conn);      
        conn.close();       
    }catch(ClassNotFoundException e){
        out.println(e);
    }catch(SQLException e){
        out.println(e);
    }

目测是你的数据库连接有问题,数据库连接就没有连上,然后你又尝试关闭。

26行打印con有结果吗?如果是null的话,后面con.close就会有空指针异常了。祝好!

改成下面方式试试
http://blog.csdn.net/song2004_2008/article/details/524602
另外,看看

 try{
            conn = DriverManager.getConnection(DURL,DUSER,DPASS);
        }catch(SQLException e){
            e.printStackTrace();//这里是否捕获到了异常,打印出什么异常信息
        }   

1: application这个数据库名,是不是对的,就是存不存在这个数据库
final String DURL = "jdbc:mysql://localhost:3306/application";
2:把连接数据库的代码,写一个类中,不要这样放在jsp中,这不符合mvc的模式
3:参考以下的连接方式,肯定可以,只是简单的开了个头

驱动程序名

String driver = "com.mysql.jdbc.Driver";

// URL指向要访问的数据库名scutcs

String url = "jdbc:mysql://127.0.0.1:3306/scutcs";

// MySQL配置时的用户名

String user = "root";

// Java连接MySQL配置时的密码

String password = "root";

try {

// 加载驱动程序

Class.forName(driver);

// 连续数据库

Connection conn = DriverManager.getConnection(url, user, password);

if(!conn.isClosed())

System.out.println("Succeeded connecting to the Database!");

// statement用来执行SQL语句

Statement statement = conn.createStatement();

// 要执行的SQL语句

String sql = "select * from student";

conn = DriverManager.getConnection(DURL,DUSER,DPASS);

这个conn的值依然是null吧,后面调用conn.close()就报空指针异常了

你有没有先建立ODBC数据源啊

一般报java.lang.NullPointerException的原因有以下几种:
·字符串变量未初始化;
·接口类型的对象没有用具体的类初始化,比如:
List lt; 会报错
List lt = new ArrayList(); 则不会报错了
·当一个对象的值为空时,你没有判断为空的情况。

你把你的数据库连接和断开语句拿到java环境debug一次就好了,看看哪儿报错!在JSP还真不好看!

28行,conn.close();抛出的空指针异常,建议在此做一个处理。
eg:
if (conn ==null){
//TODO something
}else{
conn.close();
}