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: Exception in JSP: /test.jsp:1310: 
11: String url ="jdbc:mysql:// localhost /test?user=root&password=123456&useUnicode=true&characterEncoding=8859_1";
12: 
13: Connection conn= DriverManager.getConnection(url); 
14: 
15: Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
16: 
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause javax.servlet.ServletException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.UnknownHostException
MESSAGE:  localhost STACKTRACE:java.net.UnknownHostException:  localhost 
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
at java.net.InetAddress.getAddressFromNameService(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:137)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:55)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
** END NESTED EXCEPTION **

解决方案 »

  1.   

    测试代码:
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <html>
    <body> 
    <%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url ="jdbc:mysql:// localhost /test?user=root&password=123456&useUnicode=true&characterEncoding=8859_1";
    Connection conn= DriverManager.getConnection(url);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from login";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()) {%>
    您的第一个字段内容为:<%=rs.getString(1)%>
    您的第二个字段内容为:<%=rs.getString(2)%>
    <%}%>
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close();
    stmt.close();
    conn.close();
    %>
    </body> 
    </html>
      

  2.   

    安装步骤: MySql的下载、安装及配置第一步:下载MySql是一款非常优秀的开源数据库管理系统你可以从其官方网站上得到:http://dev.mysql.com/downloads/index.html 页面上有各个版本的下载,建议您下载最新版(但不要下载测试版)。网站上提供了安装版和非安装版(zip包),我们以安装版为例。第二步:安装安装版提供一个可执行文件,双击即可完成安装。第三步:测试到bin目录下(我的是E:\Program Files\MySQL\MySQL Server 4.1\bin)找到winmysqladmin.exe,双击运行,进行第一次注册。设置完后,运行“cmd”,改变目录到bin目录下,运行mysql –u root –p,输入密码(默认为空)进入mysql。输入show databases; 如果你看到:+----------+| Database |+----------+| mysql || test |+----------+2 rows in set (0.02 sec)那么恭喜你,mysql已经安装成功了. 三、       应用服务器(App Server)的下载、安装及配置App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss。Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能。Tomcat被非常广泛的应用在中小规模的Java Web应用中,是Java入门的首选App Server。下面我们就以Tomcat、Jboss为例讲述其安装配置。Tomcat第一步:下载Tomcat是Apache组织Jakarta项目下的一个子项目,它的下载地址是:http://jakarta.apache.org/site/binindex.cgi 页面上有各个版本的下载,一样建议您下载最新版。网站上提供了安装版和非安装版,你可以根据情况下载。我们以安装版为例。第二步:安装安装版提供一个可执行文件,双击即可完成安装。第三步:设置环境变量打开“我的电脑 -> 属性 -> 高级 -> 环境变量 -> 系统变量”,设置环境变量:CATALINA_HOME= E:\Program Files\Apache Software Foundation\Tomcat 5.5(你的Tomcat安装目录,这里已我的为例)第四部:测试TomcatTomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。如果看到如下图所示画面,恭喜您,安装成功!
    注意:如果你够细心,可能会发现上图中我的浏览器地址栏的输入的是:http://localhost:9090,是的,我把Tomcat的默认端口改成了9090(当然想分给它什么端口你说了算!),8080端口我留给了Jboss。在Tomcat安装目录下找到conf下的server.xml,在这个文件里,你可以设置端口和工作(虚拟)目录。找到下面这段配置文件 port="8080",就是你设置端口的地方:     <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />找到下面这段配置文件,你可以设置虚拟目录:<Host name="localhost" appBase="webapps"       unpackWARs="true" autoDeploy="true"       xmlValidation="false" xmlNamespaceAware="false">       ……</Host> 如我要设置我虚拟目录/myjsp,并将其指向F:\soft\jsp,在</Host>上面加上下面一段配置即可:   <Context path="/myjsp" docBase="F:\soft\jsp" debug="0"                reloadable="true" crossContext="true">   </Context>第五步:测试JSP+MySQL数据库联接1、下载MySQL的JDBC驱动器:在http://www.mysql.com/products/connector/j/ 页面你能够找到可用版本的下载,当前是:mysql-connector-java-3.0.16-ga-bin.jar;2、将他拷贝到tomcat的common/lib目录下;3、测试是否连接正常;将如下代码保存成test.jsp至tomcat的webapps/root目录下:<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql:// localhost /mysql?user=root&password=你的mysql的root用户密码&useUnicode=true&characterEncoding=8859_1";Connection conn= DriverManager.getConnection(url); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);String sql="select * from user"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> </body> </html>4、如果运行以后,看到“据库操作成功,恭喜你”,恭喜你,测试成功!
     
      

  3.   

    就是看不到结果,已经搞了四个多小时了!很郁闷!网上说要将驱动加载到classpath中,不懂怎么搞!望高手赐教!
    初学者。。
      

  4.   

    "就是看不到结果,已经搞了四个多小时了!很郁闷!网上说要将驱动加载到classpath中,不懂怎么搞!望高手赐教! 
    初学者。。"
    不是将驱动加载到classpath ,而是将mysql的驱动jar包,放入tomcat的如下目录下:\webapps\你应用的名称\WEB-INF\lib下
      

  5.   

    java.net.UnknownHostException:  localhost 把你的url里面的 localhost改成 127.0.0.1
    String url ="jdbc:mysql:// localhost /test?user=root&password=123456&useUnicode=true&characterEncoding=8859_1"; 
    ==》
    String url ="jdbc:mysql://127.0.0.1/test?user=root&password=123456&useUnicode=true&characterEncoding=8859_1"; 
      

  6.   

    Connection conn=null;
    String url="jdbc:mysql://localhost:3306/mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1";
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conn=DriverManager.getConnection(url);
    我跟你有不一样的地方,反正我能连上
      

  7.   

    我将我的驱动jar包在classpath中的设置为:%MYSQL_JDBC_HOME%\lib\mysql-connector-java-5.1.7-bin.jar;
    用哪个你的那个测试程序得到的结果:
    您的第一个字段内容为: localhost 您的第二个字段内容为: root 数据库操作成功,恭喜你 
      

  8.   

    最后发现貌似你好像是String url="jdbc:mysql://localhost:3306/mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1"; 
    中的端口3306的问题,这个要加mysql的连接端口
      

  9.   

    应该是配置信息的问题 没记错的话servel.xml文件下有
    webapps\"你应用的名称"\字段  打引号字段有三种连接方式 默认应该是web  改成tomcat应该就好了
      

  10.   

    应该是url 写错了
    应该加上端口号, 默认的为3306
      

  11.   

    顶 
    String url="jdbc:mysql://localhost:3306/mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1"; 
      

  12.   

    Class.forName("org.gjt.mm.mysql.Driver")错了应该是Class.forName("com.mysql.jdbc.Driver")然后URL上加上端口号3306
      

  13.   

    又出现了如下问题!
    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: Exception in JSP: /test.jsp:1916: 
    17: String sql="select * from login"; 
    18: 
    19: ResultSet rs=stmt.executeQuery(sql); 
    20: 
    21: while(rs.next()) {%> 
    22: 
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      

  14.   

    String url="jdbc:mysql://localhost:3306/mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1"; 这里应该是ISO8859-1吧。
      

  15.   

    感谢6楼和7楼给了我正解!主要有两处问题!
    一是:String url="jdbc:mysql://localhost:3306/mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1"; 
         Class.forName("com.mysql.jdbc.Driver").newInstance(); 
         String sql="select * from login";login改成user
    二是:驱动jar包在classpath中的设置,这点,一般教程或是网上的资料都说的比较模糊,对向我这样的初学者很不利,其实这点比较重要。
          就是要将你的jdbc驱动存放的路径,在 系统属性->高级->环境变量->系统变量 中设置一下。一般需要新建一个变量名classpath,变量值为路径。
    就此两点让我搞了四天,合计时间超过40小时。但我感受到了成功后的喜悦,比较值得!!
    看来我又从新拾回对编程的兴趣了,时隔两年的我将以QBASIC语言的先驱,重新投入到编程的快乐中!!!
    祝我好运!!
      

  16.   

    conn=DriverManager(加载驱动).getconn(连接数据库)("jdbc:sqlserver://localhost:1413(端口);databaseName=数据库名","进入数据库名(sa)","密码")