tomcat是否已正常启动?象是服务器环境问题

解决方案 »

  1.   

    tomcat已正常启动了啊
    我测试过其他的一些简单程序,没问题的啊
      

  2.   

    靠,TOMCAT的报错真耐人寻味,你这错误象是JSP页面语法错误
      

  3.   

    请问 你是否将jdbc驱动好了
    你装了mysql的驱动吗
      

  4.   

    mysql的驱动已经装好了,我用mm.mysql.jdbc-2.0pre5.tar源代码如下:
    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ page import="java.sql.*" %><HTML>
    <BODY bgcolor=yellow><FONT size=1>
    <%!//处理字符串的一个常用方法
    public String getString(String s)
    {
    if(s==null) s="";
    try{
    byte a[]=s.getBytes("ISO-8859-1");
    s=new String(a);
    }
    catch (Exception e) {}
    return s;
    }
    %><% String s1=response.encodeRedirectURL("inputMessage.jsp");
       String s2=response.encodeRedirectURL("inputResult.jsp");
    %><%//为了防止客户直接进入该页面,首先从session对象获取密码和账号信息
    String account="",secret="";
    if(session.isNew())
    {//如果直接进入该页面就连接到登录页面
    response.sendRedirect("login.jsp");
    }else
    {
    account=(String)session.getAttribute("account");
    secret=(String)session.getAttribute("secret");
    secret=getString(secret);
    account=getString(account);
    }
    //连接到数据库验证账号和密码
    Connection con=null;
    Statement sql=null;
    ResultSet rs=null;
    boolean boo=false;
    try{ Class.forName("org.gjt.mm.mysql.Driver").newInstance(); }
    catch(ClassNotFoundException e) {}try{
    con=DriverManager.getConnection("jdbc:mysql://localhost:8080/student","root","he@317");
    sql=con.createStatement();
    String condition="SELECT *FROM verify WHERE accountname="+"'"+account+"'";
    rs=sql.executeQuery(condition);while(rs.next()){
    String n=rs.getString("account");
    String s=rs.getString("secret");
    if(account.equals(n)&&secret.equals(s)) { boo=true; break; }
    }
    }
    catch(Exception e) {}//如果账号密码正确,就显示输入成绩的表单界面
    if(boo) {
    out.print("<P>输入学生的考试科目、成绩等信息:");
    out.print("<FROM action="+s2+" method=post>");
    out.print("<BR>学号:");
    out.print("<Input type=text name=number2>");
    out.print("<BR>科目:");
    out.print("<Input type=text name=subject>");
    out.print("<BR>成绩:");
    out.print("<Input type=text name=result>");
    out.print("<BR><Input type=submit value=提交>");
    out.print("</FROM>");
    }
    else { response.sendRedirect("login.jsp"); }
    %><%
    String number2=request.getParameter("number2"),
           subject=request.getParameter("subject"),
           result=request.getParameter("result");if(number2==null){ number2="########"; }
    number2=getString(number2);
    subject=getString(subject);
    result=getString(result);
    number2=number2.trim();//从“基本信息”表中查找学号是number2的记录
    String basicmessage="SELECT * FROM basicinfo WHERE id = "+" '"+number2+"'";
    try { sql=con.createStatement();
          rs=sql.executeQuery(basicmessage);
          boolean line=rs.next();
          //通过line判断结果集是否有记录。如果没有该学生的基本信息就返回提示
          if(line==false)
          { out.print("你还没有输入成绩呢,");
            out.print("如果你输入的学号不在<BR>学生的基本信息表中,");
            out.print("请单击按钮:连接到学生<BR>基本信息输入页面。");
            }
          else
          { //显示该学生的基本信息
            out.print("<BR>学号"+rs.getString(1));
            out.print("<BR>姓名"+rs.getString(2));
            out.print("<BR>专业"+rs.getString(3));
            out.print("<BR>年级"+rs.getString(4));String resultmessage="INSERT INTO resultpoint VALUES"+"("+"'"+number2+"',"+subject+"','"+result+"' "+")";
    sql.executeUpdate(resultmessage);
    out.print("<BR>成绩已被录入");
    }
    }
    catch(Exception e)
    { out.print("<BR>"+subject+"该课程的成绩已经存在<BR>不允许重复录入"); }con.close();
    %><FROM action=<%=s1%>>
    <P>单击按钮连接到学生信息输入页面。
    <BR><Input type="submit" value="连接到学生基本信息输入页面">
    </FROM>
    </BODY>
    </HTML>
      

  5.   

    mysql的驱动已经装好,我用mm.mysql.jdbc-2.0pre5.tar
    源代码如下:
    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ page import="java.sql.*" %><HTML>
    <BODY bgcolor=yellow><FONT size=1>
    <%!//处理字符串的一个常用方法
    public String getString(String s)
    {
    if(s==null) s="";
    try{
    byte a[]=s.getBytes("ISO-8859-1");
    s=new String(a);
    }
    catch (Exception e) {}
    return s;
    }
    %><% String s1=response.encodeRedirectURL("inputMessage.jsp");
       String s2=response.encodeRedirectURL("inputResult.jsp");
    %><%//为了防止客户直接进入该页面,首先从session对象获取密码和账号信息
    String account="",secret="";
    if(session.isNew())
    {//如果直接进入该页面就连接到登录页面
    response.sendRedirect("login.jsp");
    }else
    {
    account=(String)session.getAttribute("account");
    secret=(String)session.getAttribute("secret");
    secret=getString(secret);
    account=getString(account);
    }
    //连接到数据库验证账号和密码
    Connection con=null;
    Statement sql=null;
    ResultSet rs=null;
    boolean boo=false;
    try{ Class.forName("org.gjt.mm.mysql.Driver").newInstance(); }
    catch(ClassNotFoundException e) {}try{
    con=DriverManager.getConnection("jdbc:mysql://localhost:8080/student","root","he@317");
    sql=con.createStatement();
    String condition="SELECT *FROM verify WHERE accountname="+"'"+account+"'";
    rs=sql.executeQuery(condition);while(rs.next()){
    String n=rs.getString("account");
    String s=rs.getString("secret");
    if(account.equals(n)&&secret.equals(s)) { boo=true; break; }
    }
    }
    catch(Exception e) {}//如果账号密码正确,就显示输入成绩的表单界面
    if(boo) {
    out.print("<P>输入学生的考试科目、成绩等信息:");
    out.print("<FROM action="+s2+" method=post>");
    out.print("<BR>学号:");
    out.print("<Input type=text name=number2>");
    out.print("<BR>科目:");
    out.print("<Input type=text name=subject>");
    out.print("<BR>成绩:");
    out.print("<Input type=text name=result>");
    out.print("<BR><Input type=submit value=提交>");
    out.print("</FROM>");
    }
    else { response.sendRedirect("login.jsp"); }
    %><%
    String number2=request.getParameter("number2"),
           subject=request.getParameter("subject"),
           result=request.getParameter("result");if(number2==null){ number2="########"; }
    number2=getString(number2);
    subject=getString(subject);
    result=getString(result);
    number2=number2.trim();//从“基本信息”表中查找学号是number2的记录
    String basicmessage="SELECT * FROM basicinfo WHERE id = "+" '"+number2+"'";
    try { sql=con.createStatement();
          rs=sql.executeQuery(basicmessage);
          boolean line=rs.next();
          //通过line判断结果集是否有记录。如果没有该学生的基本信息就返回提示
          if(line==false)
          { out.print("你还没有输入成绩呢,");
            out.print("如果你输入的学号不在<BR>学生的基本信息表中,");
            out.print("请单击按钮:连接到学生<BR>基本信息输入页面。");
            }
          else
          { //显示该学生的基本信息
            out.print("<BR>学号"+rs.getString(1));
            out.print("<BR>姓名"+rs.getString(2));
            out.print("<BR>专业"+rs.getString(3));
            out.print("<BR>年级"+rs.getString(4));String resultmessage="INSERT INTO resultpoint VALUES"+"("+"'"+number2+"',"+subject+"','"+result+"' "+")";
    sql.executeUpdate(resultmessage);
    out.print("<BR>成绩已被录入");
    }
    }
    catch(Exception e)
    { out.print("<BR>"+subject+"该课程的成绩已经存在<BR>不允许重复录入"); }con.close();
    %><FROM action=<%=s1%>>
    <P>单击按钮连接到学生信息输入页面。
    <BR><Input type="submit" value="连接到学生基本信息输入页面">
    </FROM>
    </BODY>
    </HTML>
      

  6.   

    重新试一下后,又出现这样的内容了:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot load connection class 'java.sql.SQLException: Communication link failure: java.io.EOFException'.
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    org.apache.jsp.student.inquire_jsp._jspService(inquire_jsp.java:111)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    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)
    root cause java.sql.SQLException: Cannot load connection class 'java.sql.SQLException: Communication link failure: java.io.EOFException'.
    org.gjt.mm.mysql.Driver.connect(Driver.java)
    java.sql.DriverManager.getConnection(DriverManager.java:512)
    java.sql.DriverManager.getConnection(DriverManager.java:171)
    org.apache.jsp.student.inquire_jsp._jspService(inquire_jsp.java:59)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    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.
      

  7.   

    JAVASCRIPT
    //////////////////////////////////////////////////////////////////////////////
    //
    //  機能    :画面の中にボタンを連打のチェック
    //
    //  説明    :ボタンを連打チェック
    //
    //  戻り値  :boolean  : true = 連打ない状態
    //                          : false = 連打状態
    //
    //  引数    :inButtonObj   : チェックされたオブジェクト
    //
    //////////////////////////////////////////////////////////////////////////////
    var objButtonName;            //オブジェクト
    var objButtonSeconds = 0;   //連打前の秒数
    var objSecondIdle = 3;         //連打期間の秒数
    function checkDoubleClick(inButtonName) {
        var thisTime = new Date();
        if( inButtonName != objButtonName ){
            objButtonSeconds  = thisTime.getHours()*10000 + thisTime.getMinutes()*100 + thisTime.getSeconds();
            objButtonName = inButtonName;
            return true;
        }else{         var tempSeconds = objButtonSeconds + objSecondIdle;
             if( tempSeconds <= (thisTime.getHours()*10000 + thisTime.getMinutes()*100 + thisTime.getSeconds()) ){
                 objButtonSeconds  = thisTime.getHours()*10000 + thisTime.getMinutes()*100 + thisTime.getSeconds();
                 return true;
             }
            return false;
        }
    }