2016-04-10 2 views
-2
**loginServlet.java** 

package com.anil.apps; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


public class LoginServlet extends HttpServlet { 
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out=response.getWriter(); 

     String uid=request.getParameter("userid"); 
     String password=request.getParameter("pwd"); 

     if(uid.equals("Anil")&&password.equals("missinlx")){ 
      //out.println("welcome "+uid); 
      response.sendRedirect("welcomeUser?userid="+uid); 
     } 
     else{ 
      out.println("invalid username or password"); 
     } 
    } 

} 






**WelcomeUserServlet.java** 

package com.anil.apps; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class WelcomeUserServlet extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out=response.getWriter(); 

     out.println("<html><body><h1>Welcome " +uid+ "</h1></body></html>"); 
    } 

} 

was ist falsch mit meinem Code ?? Ich möchte die Seite mit der response.sendRedirect() -Methode zur hostedUser.java-Seite umleiten. Da ich Servlet neu bin, bitte hilf mir dabei. Bitte sagen Sie mir das ganze Format für die Seitenumleitung in Servlets.Wie kann ich im Servlet mithilfe der Methode response.sendRedirect() auf eine andere Seite umleiten?

+0

Was nicht funktioniert? Ihre Verwendung von 'sendRedirect' sieht für mich in Ordnung aus. – Chris

+0

Ich weiß es nicht, aber meine IDE zeigt einen Fehler an. – Ashnil

+0

Wie ein Syntaxfehler? Was sagt es? – Chris

Antwort

-1

Sie verwenden das falsche Argument für die sendRedirect Methode

Sie sollten einen vollständigen Pfad wie

response.sendRedirect("some/path/here/to/"+welcomeUser?userid="+uid) 

Oder besser nutzen

response.sendRedirect(response.encodeURL(response.getContextPath()+"welcomeUser?userid="+uid)) 

Oder eine Anfrage Dispatcher verwenden, die die Struktur kennt Ihres Projekts und benötigt keinen vollständigen Pfad

request.getRequestDispatcher("welcomeUser?userid="+uid).forward(request,response) 
0

GET Parameter werden nicht automatisch in Variablen umgewandelt. Sie müssen dies oben auf Ihrer doGet Methode in der WelcomeUserServlet hinzuzufügen:

String uid = request.getParameter("userId"); 

machen diese Klasse sieht wie folgt aus:

public class WelcomeUserServlet extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String uid = request.getParameter("userId"); 
     PrintWriter out=response.getWriter(); 

     out.println("<html><body><h1>Welcome " +uid+ "</h1></body></html>"); 
    } 

} 
+0

, aber ich möchte die UID des loginServlet.java im WelcomeUserServlet verwenden. – Ashnil

+0

Ja, aber Variablen werden nicht zwischen Anforderungen geteilt. Sie übergeben es bereits als Parameter, wenn Sie '? Userid =" + uid "sagen, müssen Sie es in Ihrem anderen Servlet bekommen. – Chris

+0

Dank bro !!!!!! Es hat funktioniert. – Ashnil

Verwandte Themen