2015-05-05 12 views
5

Ciao, sono nuovo nella codifica java, sto provando a creare una pagina Web dinamica in eclissi. questo è il mio codice demoServlet.javaLa risposta servlet non viene visualizzata sulla pagina Web

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
@WebServlet("/demoServlet") 
public class demoServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    public demoServlet() { 
     super(); 
    } 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      response.setContentType("text/html"); 
      PrintWriter out= response.getWriter(); 
      out.println("<!DOCTYPE html PUBLIC \''>"); 
      out.println("<html>"); 
      out.println("<head>"); 
      out.println("<script language=\'JavaScript\'>"); 
      RequestDispatcher rd= request.getRequestDispatcher("/WEB-INF/javascript/Validate.js"); 
      rd.include(request, response); 
      out.println("</script>"); 
      out.println("</head>"); 
      out.println("<body>"); 
      out.println("<form action=\'/myWebprj/Success.jsp onSubmit=\'return Validateusername(this.username.value)\'>"); 
      out.println("UserName: <input type=\'text\' name=\'username\'>"); 
      out.println("<input type=\'submit\' value=\'Submit\'>"); 
      out.println("</form>"); 
      out.println("</body>"); 
      out.println("</html>"); 
    } 
    protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 
} 

questa è la mia pagina JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <title>My First jsp page in servlets</title> 
    </head> 
    <body> 
     Its Successfully completed 
    </body> 
</html> 

e questa è la mia pagina javascript

function Validateusername(username) 
{ 
    var returnValue=true; 
    if(username=""){ 
     alert("Enter username is empty"); 
     returnValue=false; 
    } 
    return returnValue; 
} 

quando sto cercando di entrare pulsante suo mostrandomi INVIA l'errore

HTTP Status 404 - /myWebprj/Success.jsp%20onSubmit= 

-------------------------------------------------------------------------------- 

type Status report 

message /myWebprj/Success.jsp%20onSubmit= 

description The requested resource is not available. 

Can any one help me out . whats is the error in the code...? 
+0

tuo manca una virgoletta di chiusura alla fine di: ** \ '/ myWebprj/Success.jsp ** –

+0

v'è alcuna ragione particolare per l'assegnazione di valore restituito su false nella funzione js. Sei stanco di usare una corda vuota. Solo un'ipotesi –

+0

Per favore mostraci il codice UI dove chiami il servlet. Sono convinto che ci sia un errore molto piccolo che causa i tuoi problemi. –

risposta

0

MIG È possibile che tu stia in qualche modo accedendo al servlet demoServlet utilizzando POST anziché GET? Questo spiegherebbe il tuo messaggio di errore. Controlla la tua console JavaScript per assicurarti che stia usando GET.

Inoltre, si prega di modificare il metodo di doPost() al seguente:

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

Se questo risolve l'errore, quindi abbiamo il problema risolto.

0

Questo funziona per me! Ho rimosso la parola chiave return solo dall'attributo evento onsubmit. Ho anche modificato leggermente il codice per assegnare correttamente il nome utente alla funzione javascript.

package test; 
 

 
import java.io.IOException; 
 
import java.io.PrintWriter; 
 
import javax.servlet.RequestDispatcher; 
 
import javax.servlet.ServletException; 
 
import javax.servlet.annotation.WebServlet; 
 
import javax.servlet.http.HttpServlet; 
 
import javax.servlet.http.HttpServletRequest; 
 
import javax.servlet.http.HttpServletResponse; 
 

 
@WebServlet("/demoServlet") 
 
public class demoServlet extends HttpServlet { 
 
    private static final long serialVersionUID = 1L; 
 
    public demoServlet() { 
 
     super(); 
 
    } 
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 
      response.setContentType("text/html"); 
 
      PrintWriter out= response.getWriter(); 
 
       
 
      String username = request.getParameter("username"); 
 

 
      out.println("<!DOCTYPE html PUBLIC \''>"); 
 
      out.println("<html>"); 
 
      out.println("<head>"); 
 
      out.println("<script language=\'JavaScript\'>"); 
 
      RequestDispatcher rd= request.getRequestDispatcher("/WEB-INF/javascript/Validate.js"); 
 
      rd.include(request, response); 
 
      out.println("</script>"); 
 
      out.println("</head>"); 
 
      out.println("<body>"); 
 
      /* 
 
      onSubmit should call only 'Validateusername()' 
 
      so the the 'return' keyword has been removed 
 
      */ 
 
      out.println("<form action=\'/Test/Success.jsp\' onSubmit=\'Validateusername(" + username + ")\'>"); 
 
      out.println("UserName: <input type=\'text\' name=\'username\'>"); 
 
      out.println("<input type=\'submit\' value=\'Submit\'>"); 
 
      out.println("</form>"); 
 
      out.println("</body>"); 
 
      out.println("</html>"); 
 
    } 
 
    protected void doPost(HttpServletRequest request, 
 
      HttpServletResponse response) throws ServletException, IOException { 
 
     // TODO Auto-generated method stub 
 
    } 
 
}

function Validateusername(username) 
 
{ 
 
    var returnValue=true; 
 
    if(username == undefined || username == null || username == ""){ 
 
     alert("Enter username is empty"); 
 
     returnValue=false; 
 
    } 
 
    return returnValue; 
 
}

0

Il codice del servlet osserva benissimo. L'unica modifica che devi apportare è nel file Validate.js. Durante la convalida nome utente vuoto che avete usato "=":

if(username=""){ // your code } 

Invece si utilizza "==", funziona benissimo.

if(username==""){ // your code } 
Problemi correlati