学习视频教程用java写简单的bbs,删除帖部分出错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: An exception occurred processing JSP page /Delete.jsp at line 3936: 
37: 
38: <%
39: int id = Integer.parseInt(request.getParameter("id"));
40: int pid = Integer.parseInt(request.getParameter("pid"));
41: 
42: Class.forName("com.mysql.jdbc.Driver");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
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.NumberFormatException: For input string: "3pid=2"
java.lang.NumberFormatException.forInputString(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
org.apache.jsp.Delete_jsp._jspService(Delete_jsp.java:92)
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:384)
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)删除页面代码:
<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@ page import="java.sql.*" %><%!
private void del(Connection conn,int id){
Statement stmt = null;
ResultSet rs = null; try{
stmt = conn.createStatement();
String sql = "select * from article where pid=" + id;
rs = stmt.executeQuery(sql);
while(rs.next()){
del(conn,rs.getInt("id"));
}
stmt.executeUpdate("delete form article where id = " + id);
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(rs != null){
rs.close();
rs = null;
}
if(stmt != null){
stmt.close();
stmt = null;
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
%>
<%
int id = Integer.parseInt(request.getParameter("id"));
int pid = Integer.parseInt(request.getParameter("pid"));Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/bbs?user=root&password=root";
Connection conn = DriverManager.getConnection(url);conn.setAutoCommit(false);del(conn,id);Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select count(*) from article where pid = " + pid);
rs.next();
int count = rs.getInt(1);
rs.close();
stmt.close();if(count <= 0){
Statement stmtUpdate = conn.createStatement();
stmtUpdate.executeUpdate("update article set isleaf = 0 where id = " + pid);
stmtUpdate.close();
}conn.commit();
conn.setAutoCommit(true);
conn.close();response.sendRedirect("ShowArticleTree.jsp");
%>错误提示那里显示是
int id = Integer.parseInt(request.getParameter("id"));
int pid = Integer.parseInt(request.getParameter("pid"));Class.forName("com.mysql.jdbc.Driver");这部分有问题,但我一直看到看不出有什么问题

解决方案 »

  1.   

    感觉是你URL传参出错了。
    你页面请求的URL是不是传的参数?!并且传入的参数类似这样:
    http://localhost:8080/sys/bbs.jsp?id=3pid=2改成这样:
    http://localhost:8080/sys/bbs.jsp?id=3&pid=2
      

  2.   

    楼上说得不错。错误虽然在Delete.jsp中暴露,但是是前一个页面中的问题
      

  3.   

    錯誤點 "3pid=2"
    應該是來是前端的request 少了一個 &
    例如 delete.jsp?id=3&pid=2,結果少了 &
    變成 delete.jsp?id=3pid=2 所以 id ="3pid2" 轉數字就有問題。
      

  4.   


    是在传入两个参数时没有将参数并列传入,应该用&符号将参数并列
      

  5.   


    刚发错了,是传参是参数未并列,导致默认为一个参数,其后当做该参数的值,应用&符号将参数并列
      

  6.   


    前一个页面问题?<%@ page language="java" contentType="text/html; charset=gbk"
        pageEncoding="gbk"%>
    <%@ page import="java.sql.*" %><%!
    String str = "";
    private void tree(Connection conn,int id,int level){
    Statement stmt = null;
    ResultSet rs = null;
    String preStr = "";
    for(int i=0;i<level;i++){
    preStr += "----";
    }
    try{
    stmt = conn.createStatement();
    String sql = "select * from article where pid=" + id;
    rs = stmt.executeQuery(sql);
    while(rs.next()){
    str +="<tr><td>" + rs.getInt("id") + "</td><td>"  +
    preStr + "<a href='ShowArticleDetail.jsp?id=" + rs.getInt("id") + "'>"  + 
    rs.getString("title") + "</a></td>" + 
    "<td><a href='Delete.jsp?id=" +rs.getInt("id") + "pid=" + rs.getInt("pid") +"'>删除</a>" +
    "</td></tr>";
    if(rs.getInt("isleaf") != 0){
    tree(conn,rs.getInt("id"),level+1);
    }
    }
    }catch(SQLException e){
    e.printStackTrace();
    }finally{
    try{
    if(rs != null){
    rs.close();
    rs = null;
    }
    if(stmt != null){
    stmt.close();
    stmt = null;
    }
    }catch(SQLException e){
    e.printStackTrace();
    }
    }
    }
    %><%
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost/bbs?user=root&password=root";
    Connection conn = DriverManager.getConnection(url);Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from article where pid = 0");
    while(rs.next()){
    str +="<tr><td>" + rs.getInt("id") + "</td><td>"  +
      "<a href='ShowArticleDetail.jsp?id=" + rs.getInt("id") + "'>" + 
          rs.getString("title") + "</a></td>" +
          "<td><a href='Delete.jsp?id=" +rs.getInt("id") + "pid=" + rs.getInt("pid") + "'>删除</a>" +
          "</td></tr>";
    if(rs.getInt("isleaf") != 0){
    tree(conn,rs.getInt("id"),1);
    }
    }
    rs.close();
    stmt.close();
    conn.close();
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk">
    <title>Insert title here</title>
    </head>
    <body>
    <table border=1>
    <%= str %>
    <% str=""; %>
    </table>
    </body></html>这个是主页面,就在这里删除
      

  7.   

    改为
    str +="<tr><td>" + rs.getInt("id") + "</td><td>" +
    preStr + "<a href='ShowArticleDetail.jsp?id=" + rs.getInt("id") + "'>" + 
    rs.getString("title") + "</a></td>" + 
    "<td><a href='Delete.jsp?id=" +rs.getInt("id") + "&pid=" + rs.getInt("pid") +"'>删除</a>" +
    "</td></tr>";
      

  8.   

    jsp中url传参数 参数之间要要&分隔
      

  9.   

    传递两个参数时应该并列传入,用&符号将参数并列