2016-10-25 3 views
1

Ich bin neu in JSP ans Servlets. Ich habe einen einfachen JSP-Code geschrieben, um das Registrierungsformular anzuzeigen, wenn Sie auf die Schaltfläche "ANMELDEN" klicken. signup.jsp sieht aus wieWie von einer JSP-Seite auf eine andere frische Seite umgeleitet wird

<!DOCTYPE html> 
<html> 
<body> 
<h2>Welcome </h2> 
<img src="abcd.jpg" alt=" " style="width:500px;height:228px;"> 
<form name="main" method="get" action="login.jsp"> 
     <input type="submit" name="ter" value="SIGN IN" > 
</form> 
</body> 
</html> 

Als ich das signup.jsp ausgeführt wird mit Bild und „Anmelden“ Taste angezeigt zu werden. Wenn ich auf diese Schaltfläche klicke, wird die Anmeldeseite auf derselben Seite angezeigt, auf der signup.jsp angezeigt wird. Wie kann ich den JSP-Code so ändern, dass SIGN IN-Details auf einer neuen Seite statt auf derselben Seite erscheinen. Meine login.jsp sieht aus wie

<%@ include file="index.jsp" %> 
<hr/> 

<h3>Login Form</h3> 
<% 
String profile_msg=(String)request.getAttribute("profile_msg"); 
if(profile_msg!=null){ 
out.print(profile_msg); 
} 
String login_msg=(String)request.getAttribute("login_msg"); 
if(login_msg!=null){ 
out.print(login_msg); 
} 
%> 
<br/> 
<form action="loginprocess.jsp" method="post"> 
Email:<input type="text" name="email"/><br/><br/> 
Password:<input type="password" name="pass"/><br/><br/> 
<input type="submit" value="login"/>" 
</form> 

mir jemand vorschlagen kann, wie es schreiben mit JSP nur, wie ich auch auf Java-Script oder andere Technologien völlig neu bin. Diese

ist, wie mein Servlet wie folgt aussieht:

@WebServlet("/SignInFunc") 
@MultipartConfig 
public class MySignInFunc extends HttpServlet { 
    /** * */ 
    private static final long serialVersionUID = 1L; 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     RequestDispatcher rd = request.getRequestDispatcher("/login.jsp"); 
     rd.forward(request, response); 
    } 
} 

, wenn ich in auf Anmelden klicken, in login.jsp genannten Bereichen sind auf der gleichen Seite angezeigt bekommen. Ich will sie auf einer neuen Seite.

+0

nicht sicher, was Sie wollen ... aber zuerst: um Ihre Login-Formular und WebServlet würde wie folgt aussehen . Von dem, was ich sehen kann, verwenden Sie drei verschiedene Seite (Anmeldung, Login, Login-Prozess), so dass ich nicht sicher bin, verstehe ich Ihre Frage ... – AxelH

+0

Sie könnten einen Blick auf diesen Beitrag, dies ist eine großartige Quelle, um Jsp ohne zu schreiben Java. http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – AxelH

+0

Wenn Sie die andere Datei "inculde", wird es auf der gleichen Seite sicher angezeigt. Entfernen Sie die erste Zeile "... include file =" index.jsp "..." – Stefan

Antwort

0

Sie benötigen WebServlet und Post Login-Anfrage zu erstellen, dann HttpServletRequest verwenden und dann, wenn Sie sicher sein, werden feststellen, dass Benutzerinformationen korrekt nach vorn Benutzer erforderlich Seite ist request.getRequestDispatcher("index.jsp").forward(request, response); Sie allso <form action = "login" method = "post"> diese Art der Sache brauchen hinzufügen wenn Sie könnten einen Link zu gehen verwenden, um login.jsp, da Sie überhaupt nicht das Formular verwenden

@WebServlet("/login") 
public class HandleLogin extends HttpServlet { 

    public HandleLogin() { 
     super(); 
    } 

    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
     ... 
    } 

    protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
     ... 
     response.sendRedirect("/home.jsp"); 
    } 
} 
+0

mein jsp ist wie

Dies und mein Servlet hat folgenden Code. – kala

+0

@WebServlet ("/ SignInFunc") @MultipartConfig public class MySignInFunc erweitert HttpServlet { \t \t/** \t * \t */ \t private static final lange serialVersionUID = 1L; \t geschütztes void doPost (HttpServletRequest-Anfrage, HttpServletResponse-Antwort) löst ServletException, IOException { response.setContentType ("text/html; charset = UTF-8"); RequestDispatcher rd = request.getRequestDispatcher ("/ login.jsp"); rd.forward (Anfrage, Antwort); \t} Wenn ich auf "Anmelden" klicke, werden die in "login.jsp" genannten Felder auf derselben Seite angezeigt. Ich möchte sie auf der neuen Seite – kala

+0

[kala] (http://stackoverflow.com/users/5916953/kala) anzeigen kann mehr [hier] (https://www.tutorialspoint.com/servlets/servlets-page-redirect.htm) über die Umleitung von Servlets lesen. Normalerweise sollte diese 'response.sendRedirect ("/home.jsp ") Art von Sache funktionieren. – GROX13

Verwandte Themen