Anzeige:
Ergebnis 1 bis 8 von 8

Thema: JSP ruft Servlet auf ... aus Servlet funktioniert aber dispatcher.forward nicht

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.03.2007
    Beiträge
    10

    Exclamation JSP ruft Servlet auf ... aus Servlet funktioniert aber dispatcher.forward nicht

    Hallo,

    ich möchte ganz simpel in einem Login-Bereich ein Servlet aufrufen, welches nachschaut, ob der User in der Datenbank vorhanden ist. Die Datenbankabfrage klappt ... er findet auch aus der JSP-Datei das Servlet ... aber das Weiterleiten zu einer anderen JSP-Seite mittels

    getServletContext().getRequestDispatcher(target).f orward(request,
    response);
    geht nicht.

    Zuerst einmal die JSP:

    Code:
    <form action="login" method="post" name="login">
    	<input type="text" size="15" name="loginname" />
    	<input type="password" size="15" name="loginpasswort" />
    	<input type="submit" value="Loggen" />
    </form>
    Hier die dazugehörige web.xml

    Code:
    <!-- Servletname einer Servletklasse zuordnen -->
    	<servlet>
    		<display-name>Login</display-name>
    		<servlet-name>login</servlet-name>
    		<servlet-class>login.Login</servlet-class>
    	</servlet>
    
    <!-- URL einem Servletnamen zuordnen -->
    <servlet-mapping>
    	<servlet-name>login</servlet-name>
    	<url-pattern>/login</url-pattern>
    </servlet-mapping>
    Und hier das Servlet Login.java

    Code:
    public class Login extends HttpServlet {
    
    
    	@Override
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		this.doPost(request, response);
    
    	}
    	
    	
    	@Override
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		String target = "";
    
    		String user = request.getParameter("loginname");
    		String pass = request.getParameter("loginpasswort");
    
    		CLogin login = CLogin.getInstance();
    		login.login(user, pass);
    
    		if (login.isLoggedIn()) {
    
    			target = "menu.jsp";
    
    		} else {
    			target = "login.jsp";
    		}
    		getServletContext().getRequestDispatcher(target).forward(request,
    				response);
    
    	}
    
    }
    Für jede Hilfe wäre ich dankbar.

    Gruß vom Marv

  2. #2
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Die Methode doPost() wird aber richtig ausgeführt?

    Die web.xml sieht richtig aus, auch wenn du dich um bessere Namenskonventionen bemühen solltest, z.B. statt Login -> LoginController.

    Das package, statt login, at.risex.projectname.Controller oder so.

    Ansonsten könntest du einmal versuchen, statt
    Code:
    getServletContext().getRequestDispatcher(target).forward(request,
    				response);
    Code:
    getServletConfig().getServletContext().getRequestDispatcher(target).forward(request,
    				response);
    Mehr fällt mir im Moment leider auch nicht ein.

    mfg, christian
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.03.2007
    Beiträge
    10
    Danke .. habe Paketname und Servletname umgeändert ... und auch die web.xml angepasst ... danke für den Hinweis ... ich probiere das nun mal mit dem holen der Config.

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.03.2007
    Beiträge
    10
    öhm .. ich arbeite in eclipse ... nun kompiliert er mir das servlet nicht in den neuen Pfad ... wie kann ich das denn von "Hand" machen? ...

    Danke schonmal

  5. #5
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Wie hast du denn die Namen geändert? Mit Refactor?
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  6. #6
    Registrierter Benutzer
    Registriert seit
    06.03.2007
    Beiträge
    10
    eigentlich ja ... aber trotzdem hats nicht geklappt ...

    aaaaber ... es geht jetzt ... ich hab den compiler in den Project-Preferences einmal auf 5 geändert und wieder zurück ... dann erstellt er ja alles nochmal.

  7. #7
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Eclipse sollte auch alles neu erstellen wenn du Project > Clean Project klickst.

    Nur ein kleiner Tipp für die Zukunft.

    mfg, christian
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  8. #8
    Registrierter Benutzer
    Registriert seit
    06.03.2007
    Beiträge
    10
    oh ok ... das merke ich mir für die Zukunft ... sag mal ... hast Du auch Ahnung von meinem neuen Problem?

    http://www.mrunix.de/forums/showthread.php?t=49723 *g*

    Danke

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •