最好不要在jsp里面写java代码,这样为以后的维护带来很大麻烦。

解决方案 »

  1.   

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

    // 俢俛偵愙懕
    con = DriverManager.getConnection(url,user,pass);
    // 僩儔儞僓僋僔儑儞僞僀僾偺愝掕
    con.setTransactionIsolation( con.TRANSACTION_READ_COMMITTED );
    con.setAutoCommit(false);
      

  2.   

    谢谢!可是仍然失败!WEBLOGICA提示如下:
    --------------------------------------------------------------------
    打开数据库连接失败
    java.sql.SQLException: 指定了无效的 Oracle URL
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
            at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:182)
            at java.sql.DriverManager.getConnection(DriverManager.java:517)
            at java.sql.DriverManager.getConnection(DriverManager.java:177)
            at jsp_servlet.__temp._jspService(__temp.java:109)
            at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:265)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
            at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2495)
            at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2204)
            at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
            at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
      

  3.   

    这样吧,我给你一个jdbc连接类,你在jsp上调用,试试:
    package jp.co.nec.JTC;import java.sql.*;
    import java.util.*;
    import java.io.*;
    public class JTCDBConnectionF implements Serializable{
    protected Connection con = null;
    public JTCDBConnectionF() {
    }
    public void dbOpen() throws java.lang.Exception{
    if (con == null || con.isClosed()) {
    String url = "jdbc:oracle:oci8:@apsv";
    String user = "scott";
    String pass = "tiger";
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    // 俢俛偵愙懕
    con = DriverManager.getConnection(url,user,pass);
    // 僩儔儞僓僋僔儑儞僞僀僾偺愝掕
    con.setTransactionIsolation( con.TRANSACTION_READ_COMMITTED );
    con.setAutoCommit(false); System.out.println("DB OPEN");
    } else {
    System.out.println("OPENED DB");
    }
    }
    public JTCerrorF dbClose() {
    try {
    if (con != null && !con.isClosed()) {
    //儘乕儖僶僢僋(惓忢廔椆帪偼close偡傞慜偵忋埵偱僐儈僢僩偡傞偙偲)
    con.rollback();
    con.close();
    System.out.println("DB CLOSE");
    } else {
    System.out.println("CLOSED DB");
    }
    }
    catch (SQLException se) {
    // return new JTCerrorF(se.getErrorCode(),se);
    return new JTCerrorF("PD05",se);        //DB CLOSE
    }
    finally {
    con = null;
    }
    return (JTCerrorF)null;
    }
    }你参考一下吧
      

  4.   

    谢谢您们的好心好意,我会马上调试。可是现在我居然又碰到了一个很菜的问题:
    用了很久都没有碰到过的问题现在居然出现了,我真是一头的雾水,请大家帮帮忙!
    今天换了台机子,采用weblogic做服务器,我在写JSP的时候发现居然页面之间不能传递中文信息,第一页的信息传到第二页显示出来就变成了???之类的乱码,到底是怎么回事啊;以前用weblogic从来都没有碰到过这种问题啊???
    大家帮帮我啊,该怎么配置啊???
      

  5.   

    你的url连接有错?有没有看看是不是数据库所在服务器有端口问题。
    第二个问题,是编码的问题。可有在叶面里面设置
    <%@page contentType="text/html;charset=GBK"%>之类。
    如果设置了,还不行,给你这个试一下。
     public static String UnicodeToChinese(String s)
      {
        try
        {
          if( s == null || s.equals(""))
          {
            return "";
          }
          String newstring = new String(s.getBytes("ISO-8859-1"),"GBK");
          return newstring;
        }
        catch(UnsupportedEncodingException e)
        {
          return s;
        }
      }  public static String ChineseToUnicode(String s)
      {
        try
        {
          if(s == null || s.equals(""))
          {
            return "";
          }
          String newstring=new String(s.getBytes("GBK"),"ISO-8859-1");
          return newstring;
        }
        catch(UnsupportedEncodingException e)
        {
          return s;
        }
      }
    版权申明:非我原创,乃是网友所创。
      

  6.   

    你换了一台机器,他机器上的汉字编码各能与你机子上的不同。我曾经遇到过这种情况。一样的系统(Win2k Server)但,一个是ISO-8859-1一个是gb2312.所以,我建议你用getBytes("gb2312"/"ISO-8859-1")试一试!
      

  7.   

    谢谢你们的指点,这样才成功了:
    s = new String(s.getBytes("iso-8859-1),"gb2312");
    out.println(s);
    终于显示出了中文!
    ------------------------------------------------------
    但是那个jdbc连接是怎么回事呢,到现在为止仍然连不上!!!