Java NetBeansServletMySQL

Java NetBeansServletMySQL,java,mysql,jsp,servlets,netbeans,Java,Mysql,Jsp,Servlets,Netbeans,这个问题已经解决了 问题在于参数名 我正在尝试创建一个基本的登录servlet,它将检查员工的登录详细信息 然而,我的servlet似乎没有与数据库交互,总是将我返回到“tryagain.jsp”。 我做错了什么? 我用的是玻璃鱼和网虫。 我在库文件中也有j/connector驱动程序 这个问题已经解决了 问题在于参数名 这是代码 package loginServlet; import java.io.IOException; import java.io.PrintWriter; impo

这个问题已经解决了

问题在于参数名

我正在尝试创建一个基本的登录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);
}

你得到的错误是什么?请压缩到代码的相关部分什么是
System.out.println(e)异常打印?发帖?我没有收到错误,它没有检查细节。它总是将我重定向到欢迎页面。这段代码在普通java文件上工作。问题可能出在服务器上吗?我添加了你的代码,但没有打印无法连接或已连接。。。它每次都会重定向到“重试”页面。我接受了您的建议,并确定问题在于参数名。我的天哪,在一封没有封盖的信上浪费了两个小时。啊,学习编程的乐趣。是的,如果你把错误处理和学习读取异常放在一起,那么2小时的“浪费”就变成了1小时,然后是30分钟等等,随着你经验的增加。