学习视频教程用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");这部分有问题,但我一直看到看不出有什么问题
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");这部分有问题,但我一直看到看不出有什么问题
解决方案 »
- javamail出错:com.sun.mail.util.FolderClosedIOException
- Java EE
- 怎么用hibernate取得数据库表有那些主键???
- session的怪问题,痛哭中......
- 关于byte类型,求或,困扰我多时!
- hibernate (Exception building SessionFactory: Could not instantiate dialect class)
- tomcat5.0.25和原来的有什么大的区别吗?(因昨晚试用时,原来可执行的servlet,结果url都没指到)
- 本人同样大三,初学Java,请教学习Java的方法!
- 请问我该看什么方面的书??
- entitybean问题一个,请大家帮忙!!!!
- 初学者的疑问!!!
- java 书籍内容分页显示
你页面请求的URL是不是传的参数?!并且传入的参数类似这样:
http://localhost:8080/sys/bbs.jsp?id=3pid=2改成这样:
http://localhost:8080/sys/bbs.jsp?id=3&pid=2
應該是來是前端的request 少了一個 &
例如 delete.jsp?id=3&pid=2,結果少了 &
變成 delete.jsp?id=3pid=2 所以 id ="3pid2" 轉數字就有問題。
是在传入两个参数时没有将参数并列传入,应该用&符号将参数并列
刚发错了,是传参是参数未并列,导致默认为一个参数,其后当做该参数的值,应用&符号将参数并列
前一个页面问题?<%@ 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>这个是主页面,就在这里删除
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>";