Java 如果凭证不正确,如何将用户重定向到另一个JSP页面

Java 如果凭证不正确,如何将用户重定向到另一个JSP页面,java,servlets,error-handling,Java,Servlets,Error Handling,我正在为java web应用程序创建登录表单。我让用户通过JavaServlet使用正确的密码登录,但是如果用户输入了错误的密码,我想将用户重定向到另一个JSP页面。我的第一个想法是创建一个try/catch语句。但是,当我尝试此操作时,会收到空白页。我如何确保用户知道他们何时输入了错误的密码?谢谢 public class Loginn extends HttpServlet { protected void processRequest(HttpServletRequest request

我正在为java web应用程序创建登录表单。我让用户通过JavaServlet使用正确的密码登录,但是如果用户输入了错误的密码,我想将用户重定向到另一个JSP页面。我的第一个想法是创建一个try/catch语句。但是,当我尝试此操作时,会收到空白页。我如何确保用户知道他们何时输入了错误的密码?谢谢

public class Loginn extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        String name = request.getParameter("name");
        String pass = request.getParameter("pass");
        MyDb1 db = new MyDb1();
      Connection con = db.getCon();
      Statement stmt = con.createStatement();
     ResultSet rs = stmt.executeQuery("select uid,name,pass from register where email = '"+name+"' and  pass = '"+pass+"'");

     while ((rs.next())) {

        String uid = rs.getString("uid");

          HttpSession session=request.getSession();  
          session.setAttribute("name",uid);
          response.sendRedirect("http://localhost:8080/Final_Year_Project_5_/userprofile.jsp");  

} 


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

    }
}尝试使用if和else

你的代码是一个安全漏洞。想象一下我在web表单中的pass字段中:

whatever' OR TRUE;--
我会登录,把这个字符串放到你的查询中,然后打印出来,看看它会做什么

您需要使用PreparedStatement,用问号替换所有变量

你的代码有内存泄漏。连接、语句和结果集都是资源;它们需要显式关闭。谷歌搜索如何在java中使用“资源试用”。 JSP是过时的技术,您的异常处理使连接处于浮动状态。我建议这样做:抛出新的ServletExceptionex,至少在servlet容器的正确位置执行错误处理

空白页面可能是由于您处理异常的方式导致的,您将异常记录在日志中,然后什么也不做,导致出现空白页面。修复此问题,现在您可以查看实际错误

whatever' OR TRUE;--