我只是吧jdbc解压到了一个新建的文件夹后,管理工具-数据源(odbc)-添加-SQL server-名称,描述,服务器.-默认到完成.
然后编写了<%@page language="java" contentType="text/html;charset=gb2312" page-Encoding="gb2312" %>
<%@page import="java.util.*" %>
<%@page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>创建数据库</title>
</head>
<body><font size=2>
<%
Connection conn=null;
Statement stmt=null;
String sql=null;
ResultSet rs=null;
int ret;
try{
Class.forName("com.SQL server.jdbc.Driver");
String strCon="jdbc:microsoft:sqlserver://localhost:1433";
conn=DriverManager.getConnection(strCon,"root","root");
stmt=conn.createStatement();
sql="create database LHX ";
ret=stmt.executeUpdate(sql);
sql="use LHX";
ret=stmt.executeUpdate(sql);
sql="create table customers("+
"ID int(6) unsigned NOT NULL auto_increment,"+
"Name varchar(20) default NUll,"+
"addTime timestamp NULL default NULL,"+
"Tel varchar(15) default NULL,"+
"Email varchar(20) default NULL,"+
"PRIMARY KEY (ID)"+
")";
ret=stmt.executeUpdate(sql);
}
catch(ClassNotFoundException e){
e.printStackTrace();
out.println("<h1>无法找到数据库驱动</h1>");
}
catch(SQLException e1){
e1.printStackTrace();
out.println("<h1>数据库操纵失败</h1>");
}
out.println("<h1>新建数据库LHX成功</h1>");
DatabaseMetaData meta=conn.getMetaData();
out.println("<br>");
out.println("连接字:"+meta.getURL());
out.println("<br>");
out.println("数据库产品:"+meta.getDatabaseProductName());
out.println("<br>");
out.println("数据库版本:"+meta.getDatabaseProductVersion());
out.println("<br>");
out.println("驱动程序:"+meta.getDriverName());
out.println("<br>");
out.println("驱动程序版本:"+meta.getDriverVersion());

stmt.close();
conn.close();
%>
</font>
</body>
</html>
出现了这个,是什么原因HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /Test5_1.jsp(1,1) Page directive has invalid attribute: page-Encoding
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:83)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:402)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:236)
org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:348)
org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:144)
org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:578)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2180)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2230)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2236)
org.apache.jasper.compiler.Node$Root.accept(Node.java:485)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2180)
org.apache.jasper.compiler.Validator.validate(Validator.java:1478)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:247)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:456)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.16

解决方案 »

  1.   

    1. Class.forName("com.SQL server.jdbc.Driver");这个有问题。。
    2. String strCon="jdbc:microsoft:sqlserver://localhost:1433";这个有问题
    3. <%@page language="java" contentType="text/html;charset=gb2312" page-Encoding="gb2312" %>红色部分去掉,已经设置了一次了属性应该是pageEncoding吧?
    4. sql="create database LHX ";
    ret=stmt.executeUpdate(sql);
    sql="use LHX";在这里去执行sql脚本,,有问题没有这么做的
      

  2.   

    楼上应该解决了问题;其实网上搜索一个完整的JDBC连接池就可以搞定
      

  3.   

    建议就算只是test,最好也进行功能和显示分开。这样查找问题会方便很多
    3. <%@page language="java" contentType="text/html;charset=gb2312" page-Encoding="gb2312" %>这里contentType是决定浏览器将以什么形式、什么编码读取这个文件,page-Encoding是当jsp转译成_jsp.java时使用的encoding,两者不冲突
      

  4.   


    <%@page language="java" contentType="text/html;charset=gb2312" page-Encoding="gb2312" %>
    <%@page import="java.util.*" %>
    <%@page import="java.sql.*" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    <title>创建数据库</title>
    </head>
    <body><font size=2>
    <%
    Connection conn=null;
    Statement stmt=null;
    String sql=null;
    ResultSet rs=null;
    int ret;
    try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String strCon="jdbc:microsoft:sqlserver://localhost:1433";
    conn=DriverManager.getConnection(strCon,"root","root");
    stmt=conn.createStatement();
    sql="create database LHX ";
    ret=stmt.executeUpdate(sql);
    sql="use LHX";
    ret=stmt.executeUpdate(sql);
    sql="create table customers("+
    "ID int(6) unsigned NOT NULL auto_increment,"+
    "Name varchar(20) default NUll,"+
    "addTime timestamp NULL default NULL,"+
    "Tel varchar(15) default NULL,"+
    "Email varchar(20) default NULL,"+
    "PRIMARY KEY (ID)"+
    ")";
    ret=stmt.executeUpdate(sql);
    }
    catch(ClassNotFoundException e){
    e.printStackTrace();
    out.println("<h1>无法找到数据库驱动</h1>");
    }
    catch(SQLException e1){
    e1.printStackTrace();
    out.println("<h1>数据库操纵失败</h1>");
    }
    out.println("<h1>新建数据库LHX成功</h1>");
    DatabaseMetaData meta=conn.getMetaData();
    out.println("<br>");
    out.println("连接字:"+meta.getURL());
    out.println("<br>");
    out.println("数据库产品:"+meta.getDatabaseProductName());
    out.println("<br>");
    out.println("数据库版本:"+meta.getDatabaseProductVersion());
    out.println("<br>");
    out.println("驱动程序:"+meta.getDriverName());
    out.println("<br>");
    out.println("驱动程序版本:"+meta.getDriverVersion());

    stmt.close();
    conn.close();
    %>
    </font>
    </body>
    </html>
    源代码如下:刚来论坛,不习惯的了,抱歉
      

  5.   

    我的源代码,不是那个样子的,为什么发送后就左对齐了,晕<%@page language="java" contentType="text/html;charset=gb2312" page-Encoding="gb2312" %>
    <%@page import="java.util.*" %>
    <%@page import="java.sql.*" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    <title>创建数据库</title>
    </head>
    <body><font size=2>
    <%
    Connection conn=null;
    Statement stmt=null;
    String sql=null;
    ResultSet rs=null;
    int ret;
    try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String strCon="jdbc:microsoft:sqlserver://localhost:1433";
    conn=DriverManager.getConnection(strCon,"root","root");
    stmt=conn.createStatement();
    sql="create database LHX ";
    ret=stmt.executeUpdate(sql);
    sql="use LHX";
    ret=stmt.executeUpdate(sql);
    sql="create table customers("+
    "ID int(6) unsigned NOT NULL auto_increment,"+
    "Name varchar(20) default NUll,"+
    "addTime timestamp NULL default NULL,"+
    "Tel varchar(15) default NULL,"+
    "Email varchar(20) default NULL,"+
    "PRIMARY KEY (ID)"+
    ")";
    ret=stmt.executeUpdate(sql);
    }
    catch(ClassNotFoundException e){
    e.printStackTrace();
    out.println("<h1>无法找到数据库驱动</h1>");
    }
    catch(SQLException e1){
    e1.printStackTrace();
    out.println("<h1>数据库操纵失败</h1>");
    }
    out.println("<h1>新建数据库LHX成功</h1>");
    DatabaseMetaData meta=conn.getMetaData();
    out.println("<br>");
    out.println("连接字:"+meta.getURL());
    out.println("<br>");
    out.println("数据库产品:"+meta.getDatabaseProductName());
    out.println("<br>");
    out.println("数据库版本:"+meta.getDatabaseProductVersion());
    out.println("<br>");
    out.println("驱动程序:"+meta.getDriverName());
    out.println("<br>");
    out.println("驱动程序版本:"+meta.getDriverVersion());

    stmt.close();
    conn.close();
    %>
    </font>
    </body>
    </html>
      

  6.   

    楼主不要把java代码写到jsp页面中
      

  7.   

    jsp只做显示用,要与业务分开
      

  8.   

    把Java代码放到一个类中,与页面分开。下面是我写的一个类,比如这个类叫BaseDao,可以参考一下;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    public class BaseDao {
    private static final String DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=shopping";
    private static final String USER_NAME = "sa";
    private static final String PASSWORD = "sa";
    protected Connection conn = null;
    protected PreparedStatement ps = null;
    protected ResultSet rs = null;
    public Connection getConn() {
    try {
    Class.forName(DRIVER_CLASS);
    conn = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return conn;
    }
    public void closeAll() {
    try {
    if (rs != null) {
    rs.close();
    }
    if (ps != null) {
    ps.close();
    }
    if (conn != null) {
    conn.close();
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    public int executeUpdate(String sql, Object[] params) {
    int result = 0;
    try {
    ps = this.getConn().prepareStatement(sql);
    if (params != null && params.length != 0) {
    for (int i = 0; i < params.length; i++) {
    ps.setObject(i + 1, params[i]);
    }
    }
    result = ps.executeUpdate();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    this.closeAll();
    }
    return result;
    }
    public ResultSet executeQuery(String sql, Object[] params)
    throws SQLException {
    ps = this.getConn().prepareStatement(sql);
    if (params != null && params.length != 0) {
    for (int i = 0; i < params.length; i++) {
    ps.setObject(i + 1, params[i]);
    }
    }
    return ps.executeQuery();
    }
    }
      

  9.   

    写个工具类,把这段代码放进去,以后连接数据库时,直接复制这个类就行,平常不用动里面代码private static final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String url = "jdbc:sqlserver://localhost:1433;DataBaseName=company";
    private static final String user = "sa";
    private static final String pwd = "123@qwe";
    private static Connection con = null;
    private static PreparedStatement pst = null;
    /*
     *  建立数据库连接
     */
    public static Connection getCon() {
    try {
    Class.forName(driver);
    con = DriverManager.getConnection(url, user, pwd);
    } catch (Exception e) {
    System.out.println("初始化错误:" + e.getMessage());
    }
    return con;
    }
    /*
     * 关闭Connection
     */
    public static void closeAll(Connection con, Statement pst, ResultSet rst) {
    try {
    if (con != null) {
    con.close();
    }
    if (pst != null) {
    pst.close();
    pst = null;
    }
    if (rst != null) {
    rst.close();
    rst = null;
    }
    } catch (Exception e) {
    System.out.println(e.getMessage());
    }
    }
      

  10.   

    在你的jsp页面里面导入这个类的包,
    <%@page import="包名.类名" %>
    例如:<%@page import="util.DBManager" %>
      

  11.   

    JDBC连接可以封装的,之后的代码就可以简写很多了