import java.io.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import java.sql.*;
public class proBean
{
//定义内部使用的相应对象变量
ServletRequest req;
ServletResponse res;
ServletOutputStream out; String ID ;
String gridno ;
String type ;
String x ;
String y ;
String name ;
String dbName;
String tableName;
String m_URL;
String userName;
String userPasswd;
Connection Con;
Statement Stat;
public void proBean() {} public void init(ServletRequest request,ServletResponse response)
{
try
{
out=res.getOutputStream();
}
catch(IOException e)
{
System.out.println("getOutputStream Error:"+e.getMessage());
}
try{
req=request;
res=response;
dbName="test"; //数据库名字
tableName="point"; //表
m_URL="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
userName="root";
userPasswd="cnk8";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Con=DriverManager.getConnection(m_URL);
Stat = Con.createStatement();
/*
if(request.getParameter("ID")!=null && request.getParameter("gridno")!=null&&request.getParameter("x")!=null&&request.getParameter("y")!=null&&request.getParameter("name")!=null){
Enumeration enumt = request.getParameterNames();
while(enumt.hasMoreElements()){
str=enumt.nextElement().toString();
out.println(str+":"+request.getParameter(str)+"<br>");
}
}
*/
ID = req.getParameter("ID");
gridno = req.getParameter("gridno");
type = req.getParameter("type");
x = req.getParameter("x");
y = req.getParameter("y");
name = req.getParameter("name");
}
catch(Exception ex)
{
response.sendError(500,"sorry,some wrong happend");
out.println(ex.getMessage());
}
} public void execute()
{
try{
Stat.executeUpdate("insert into point(ID,gridno,type,x,y,name) values('"+ID+"','"+gridno+"','"+type+"','"+x+"','"+y+"','"+name+"')");
}
catch(IOException e)
{System.out.println("getOutputStream Error:"+e.getMessage());}
}
public void clean()
{
//释放资源,此处只是示例
req=null;
res=null;
// rs.close();
Stat.close();
Con.close();
}
}代码很简单,但是几个异常捕获有问题 ,编译不过。请大家帮忙改下异常捕获的地方。
Stat.executeUpdate("insert into point(ID,gridno,type,x,y,name) values('"+ID+"','"+gridno+"','"+type+"','"+x+"','"+y+"','"+name+"')");
}
catch(SQLException e)
{System.out.println("getOutputStream Error:"+e.getMessage());}
自己发现问题了。这样就可以了。请大家简单说下错误处理的知识吧 我才学java 以前都是做C++
麻烦大家了。
问题2:response.sendError(500, "sorry,some wrong happend"); 其中的方法在ServletResponse中没有定义
问题3:Stat.close(); Con.close(); 会抛出异常SQLException,直接用Exception捕获就可以了
这里的exception得是抛出的具体异常类或其父类