[英]NetBeans Servlet MySQL
这个已经解决了
问题在于参数名称。
我正在尝试创建一个基本的登录servlet,它将检查员工的登录详细信息。
但是,我的servlet似乎没有与数据库进行交互,因此总是将我返回到“ tryagain.jsp”。 我究竟做错了什么? 我正在使用玻璃鱼和小扁豆。 我在库文件中也有j / connector驱动程序。
这个已经解决了
问题在于参数名称。
这是代码。
package loginServlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
/**
*
* @author asus
*/
public class Login1 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection conn;
PreparedStatement ps;
ResultSet rs;
String DRIVER = "com.mysql.jdbc.Driver";
String DATABASE_URL = "jdbc:mysql://localhost:3306/northwind";
String uname=request.getParameter("username");
String passwd=request.getParameter("userPass");
try {
// load the driver class
Class.forName(DRIVER);
// establish connection to database
conn =
DriverManager.getConnection(DATABASE_URL, "jonh86", "ADMIN");
System.out.println("Connected....");
ps = conn.prepareStatement("select * from userdata where user_name = ? and password = ?");
ps.setString(1, uname);
ps.setString(2, passwd);
rs = ps.executeQuery();
if (rs.next()) {
RequestDispatcher rd = request.getRequestDispatcher("WelcomeServlet");
rd.forward(request, response);
//out.println(rs.getString(2));
} else {
RequestDispatcher rd = request.getRequestDispatcher("tryagain.jsp");
rd.include(request, response);
}
}
catch (Exception e) {
System.out.println(e);
}
}
}
您可以通过一些适当的错误检查自己找到原因。 有很多原因可能导致它失败。
// establish connection to database
conn = DriverManager.getConnection(DATABASE_URL, "jonh86", "ADMIN");
if(conn == null) System.out.println("Could not Connect");
System.out.println("Connected...."); //--this code is misleading
ps = conn.prepareStatement("select * from userdata where user_name = ? and password = ?");
ps.setString(1, uname);
ps.setString(2, passwd);
rs = ps.executeQuery();
另外,您应该捕获SQLException并打印它们:
catch (SQLException e) {
System.out.println("Exception = " + e);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.