2015-05-05 7 views
5

Witam Jestem nowy w kodowaniu java, próbuję stworzyć dynamiczną stronę internetową w czasie zaćmienia. to jest mój kod demoServlet.javaOdpowiedź serwletu nie jest wyświetlana na stronie internetowej

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 
    } 
} 

to jest moja strona 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> 

i to jest mój javascript strona

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

gdy próbuję wejść przycisk jego pokazując mi WYŚLIJ błąd

+0

Twój brakuje zamykający cudzysłów w końcu: ** \ '/ myWebprj/Success.jsp ** –

+0

jest jakiś szczególny powód do przypisywania wartości zwracanej false w funkcji js. Zmęczyłeś się przy użyciu pustego napisu. Tylko zgadnij. –

+0

Pokaż nam kod UI, do którego wywołujesz serwlet. Jestem przekonany, że istnieje bardzo mały błąd powodujący twoje problemy. –

Odpowiedz

0

Mig czy możliwe jest, że w jakiś sposób uzyskujesz dostęp do serwletu demoServlet przy użyciu zamiast GET? To by wyjaśniało twój komunikat o błędzie. Sprawdź konsolę JavaScript, aby upewnić się, że używa ona GET.

Należy również zmodyfikować metodę doPost() na następujące kwestie:

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

Jeśli to rozwiąże problem, to mamy problem rozwiązany.

0

To działa dla mnie! Usunąłem tylko słowo kluczowe return z atrybutu zdarzenia onsubmit. Również trochę zmodyfikowałem kod, aby poprawnie przypisać nazwę użytkownika do funkcji 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

Twój kod serwletu wygląda dobrze. Jedyną zmianą, którą musisz wprowadzić, jest plik Validate.js. Podczas sprawdzania nazwy użytkownika na pusty użyłeś „=”:

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

Zamiast używać „==”, to działa dobrze.

if(username==""){ // your code } 
Powiązane problemy