[英]Servlet response is not displaying on webpage
Hi I am new to java coding, i trying to create dynamic web page in eclipse. 嗨,我是java编码的新手,我试图在eclipse中创建动态网页。 this is my demoServlet.java code
这是我的demoServlet.java代码
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
}
}
this is my JSP page 这是我的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>
and this is my javascript page 这是我的javascript页面
function Validateusername(username)
{
var returnValue=true;
if(username=""){
alert("Enter username is empty");
returnValue=false;
}
return returnValue;
}
when i am trying to enter SUBMIT button its showing me the error 当我试图进入SUBMIT按钮时,它显示错误
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...?
Might it be possible that you are somehow accessing your demoServlet
servlet using POST
instead of GET
? 您是否有可能以某种方式使用
POST
而不是GET
访问您的demoServlet
servlet? This would explain your error message. 这将解释您的错误消息。 Please check your JavaScript console to make certain it is using
GET
. 请检查您的JavaScript控制台以确定它是否正在使用
GET
。
Also, please modify your doPost()
method to the following: 另外,请将您的
doPost()
方法修改为以下内容:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
If this resolves the error, then we have the problem solved. 如果这解决了错误,那么我们就解决了问题。
This works for me! 这适合我! I only have removed the return keyword from the onsubmit event attribute.
我只从onsubmit事件属性中删除了return关键字。 I also have modified the code a bit to properly assign the username to the javascript function.
我也修改了一些代码以正确地将用户名分配给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; }
Your servlet code looks fine. 你的servlet代码看起来很好。 The only change you need to make is in Validate.js file.
您需要进行的唯一更改是在Validate.js文件中。 When validating username for empty you have used "=":
将用户名验证为空时,您使用了“=”:
if(username=""){ // your code }
Instead you use "==", it works fine. 相反,你使用“==”,它工作正常。
if(username==""){ // your code }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.