2015-05-05 27 views
5

Merhaba java kodlamaya yeni başladım, tutulmaya dinamik web sayfası oluşturmaya çalışıyorum. Bu bu benim JSP sayfasıServlet yanıt sayfası görüntülenmiyor

<%@ 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> 

benim demoServlet.java kodu

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

ve ben onun bana gösterilen düğmeye GÖNDER girmeye çalışıyorum bu benim javascript sayfa

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

olduğunu hata:

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

Senin sonunda bir kapanış tırnak işareti eksik: ** \ '/ myWebprj/Success.jsp ** –

+0

js fonksiyonunda false dönüş değeri atamak için herhangi bir neden yoktur. Boş dize kullanarak yoruldun mu. Sadece bir tahmin –

+0

Lütfen bize sunucu uygulamasını çağırdığınız UI kodunu göster. Sorunlarınıza neden olan çok küçük bir hata olduğuna inanıyorum. –

cevap

0

Mig ht servlet GET yerine POST kullanarak erişme mümkün olabilir? Bu, hata mesajınızı açıklar. Lütfen GET kullanıyor olduğundan emin olmak için JavaScript konsolunuzu kontrol edin.

Ayrıca aşağıdaki şekilde doPost() yöntemini değiştirmek edin:

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

bu hatayı giderir, o zaman sorun çözüldü var.

0

Bu benim için çalışıyor! Yalnızca dönüş anahtar kelimesini onsubmit olayı özelliğinden kaldırdım. Ayrıca, kullanıcı adını javascript işlevine doğru şekilde atamak için kodu biraz değiştirdim.

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

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

0

Sizin servlet kod gayet iyi görünüyor. Yapmanız gereken tek değişiklik Validate.js dosyasında. boş kullanıcı adını doğrulayarak kullanmış "=":

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

Bunun yerine "==", iyi çalışıyor kullanırlar.

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