无法执行servlet

时间:2014-04-13 10:46:07

标签: java jsp servlets

下面是我的代码。使用database.i进行登录表单验证从jsp页面调用此servlet(即当我单击登录页面的提交按钮时,它将被定向到此servlet)。但是,当我运行它加载并只显示一个空白页面。任何人都告诉我什么是错的。

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {
        PrintWriter out = response.getWriter();
                response.setContentType("text/html;charset=UTF-8");
                out.println("<!DOCTYPE html>");
                    out.println("<html>");
                    out.println("<head>");
                    out.println("<title>check</title>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("<h2>check</h2>");
                    out.println("</body>");
                    out.println("</html>");
        String name=request.getParameter("username");
        String pass=request.getParameter("password");

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        Connection con;
        con = DriverManager.getConnection("jdbc:odbc:BusPassDS");
        Statement stmt=con.createStatement();
        ResultSet rs=stmt.executeQuery("SELECT * FROM logTab");
        while(rs.next())
        {
            String dbName=rs.getString("username");
            String dbPass=rs.getString("password");
            if((dbName.equals(name))&&(dbPass.equals(pass)))
            {
                RequestDispatcher dis=request.getRequestDispatcher("success.jsp");
                dis.forward(request,response);
            }
            else
            {


                    out.println("<!DOCTYPE html>");
                    out.println("<html>");
                    out.println("<head>");
                    out.println("<title>Login Error</title>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("<h2>invalid username or password</h2>");
                    out.println("</body>");
                    out.println("</html>");



            }
        }

    } catch (SQLException | ClassNotFoundException ex) {
        Logger.getLogger(ValidationServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
}              

3 个答案:

答案 0 :(得分:0)

如果输出为空,则必须抛出异常。 out.println()来电可能永远不会发送到客户端,因为它们没有被刷新。

要调试此问题,请尝试将out.println()添加到catch块。另请尝试在out.flush()块中添加一些try次调用。

答案 1 :(得分:0)

当您点击提交按钮时,它POST,而不是GET。您的servlet方法是doGet()。尝试将一些内容放入doPost()

答案 2 :(得分:0)

只需将doGet中代码的内容复制到doPost就可以了,或者设置form method =&#34; get&#34;但是在密码验证的情况下,post更好,并在doPost中编写代码以进行验证