Announcement

Collapse
No announcement yet.

Login response.sendRedirect

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Login response.sendRedirect

    Hallo,

    ich hoffe, irgendjemand kann mir helfen. Hab noch nicht soviel Erfahrung mit JSP.

    Ich habe folgendes Problem.

    Meine JSP-Datei: login.jsp

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <%@ page language="java"%>
    <%@ page import="javalogin.Login" %>

    <%
    // lesen des Usernamens
    String sUser = request.getParameter("userName");

    // lesen des Passwortes
    String sPasswort = request.getParameter("userPassword");
    Login obj = new Login();
    // User und Passwort prüfen und entsprechend verzweigen
    if(obj.checkUserAndPasswort(sUser, sPasswort) == true)
    response.sendRedirect("loginOk.jsp");

    response.sendRedirect("loginNotOk.jsp");
    %>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <body>
    <h1>Please login!</h1>
    <!-- in form tag action should be first -->
    <form action="login.jsp" method="post" >
    <table>
    <tr>
    <td>Account:</td>
    <td><input type="text" name="userName" maxlength="6" /></td>
    </tr>
    <tr>
    <td>Password:</td>
    <td><input type="password" name="userPassword" /></td>
    </tr>

    <tr>
    <td><input type="submit" value="Login" name="login"></input>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Meine Class-Datei: Login.java

    package javalogin;

    public class Login {
    public boolean checkUserAndPasswort(String uUser, String uPasswort){

    String mUser = "pass";
    String mPasswort = "4pass";

    if((uUser != null) && (uPasswort != null) && (uUser.equals(mUser)) && (uPasswort.equals(mPasswort))){
    return(true);}
    return(false);
    }
    }

    Problem: Beim Ausführen des login.jsp-Datei wird sofort auf die loginNotOk.jsp-Datei weitergeleitet ohne die login.jsp-Datei anzuzeigen. Also, ich kann nicht Username und Passwort eintragen, weil die Seite nicht angezeigt wird.

    Weiß jemand, was für einen Fehler ich gemacht habe? Ich finde es leider nicht...

    Gruß
    amazone

  • #2
    Weiß jemand, was für einen Fehler ich gemacht habe?
    Ja,

    Der Javacode in der JSP wird erst interpretiert und ausgeführt. DANN wird das HTML gerendert und die Seite ausgegeben.

    if(obj.checkUserAndPasswort(sUser, sPasswort) == true)

    ergibt bei dir false, weil ja noch keine Daten eingegeben wurden und Username und Passwort null sind. Also erste eine null Prüfung rein
    Christian

    Comment


    • #3
      danke für die Antwort.

      ich habe folgendermaßen verändert und das funktioniert auch:

      // button überprüfen
      if(request.getParameter("login") != null){

      Login obj = new Login();
      // User und Passwort prüfen und entsprechend verzweigen
      if(obj.checkUserAndPasswort(sUser, sPasswort) == true){
      response.sendRedirect("loginOk.jsp");
      }else{
      response.sendRedirect("loginNotOk.jsp");
      }
      }

      Gruß
      amazone

      Comment

      Working...
      X