java web???急!!!!!!!!!!高分。。。
我用servlet来做验证,如果有这个用户则显示“你好,欢迎登陆!”如果没有则返回。
主要代码如下:
是不是加红的语句有问题??我是用从表单传上来的username,password,作为参数传到sql语句的,用的PreparedStatement语句不知道对不对??
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String driver = "com.mysql.jdbc.Driver";
String dbusername = "root";
String dbpassword ="password";
String url = "jdbc:mysql://localhost:3306/joblog";
String sql = "select * from login where adminname=? and adminpassword=?";
Connection conn = null;
String username = request.getParameter("username");
String password = request.getParameter("password");
try {
Class.forName(driver);
try {
conn = DriverManager.getConnection(url, dbusername, dbpassword);
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if(rs!=null&&rs.next()){
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println("<h1>你好,欢迎登陆!</hl>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}else{
return;
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
错误:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
如何解决呀,请大家帮忙呀,谢谢了。。。