如何阻止JSP页面执行servlet

How do I stop JSP page from executing the servlet?

本文关键字:执行 servlet 何阻止 JSP      更新时间:2023-09-26

我只是想做一个简单的web应用程序。它应该采取所有的输入,验证它们,并将其存储在数据库或显示错误。我有问题,而通过外部javascript验证我的表单。如果字段为空,则完成所有检查,但是JSP将控件定向到Servlet。我需要阻止JSP页面继续前进。请帮助!下面是代码:

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>Welcome</title>
<script type="text/javascript" src="js/validationJS.js"></script>
</head>
<body>
<h1 align="center">Teacher Management System</h1>
<form name="TeacherRegistrationForm" action="TeacherController" method="post" >
<input type="hidden" name="source" value="AddTeacher">
<table>
<tr>
<td>
ID:<input type="text" name="teacherId" />
</td>
</tr>
<tr>
<td>
Name:<input type="text" name="teacherName" />
</td>
</tr>

<tr>
<td>
Address:<textarea type="text" rows="5" name="teacherAddress" ></textarea>
</td>
</tr>

<tr>
<td>
Qualification:<input type="text" name="teacherQualification" />
</td>
</tr>

<tr>
<td>
Years Of Experience:<input type="text" name="teacherExp" />
</td>
</tr>

<tr>
<td>
Age:<input type="text" name="teacherAge" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="teacherAdd" value="ADD" onclick="validate()"/>
<input type="reset" name="teacherReset" value="RESET FIELDS" /><br><br>
<a href="WelcomePage.jsp" style="text-decoration: underline">Go Back</a>
</td>
</tr>

</table>
</form>
</body>
</html>
Javascript:

    function validate()
{   
    boolean result=false;
    if(document.TeacherRegistrationForm.teacherId.value=="")
    {
        document.TeacherRegistrationForm.teacherId.value= "Please Enter a valid ID";
        document.TeacherRegistrationForm.teacherId.focus();
        alert("Please enter valid ID");
        result=false;
    }else{result=true;}
    return result;
}

需要使用<input type="button"

您需要将<input type="submit" name="teacherAdd" value="ADD" onclick="validate()"/>更改为如下所示:

<input type="button" name="teacherAdd" value="ADD" onclick="validate()"/>

<input type="submit"将表单提交给servlet,而不是使用<input type="button"并调用validate()(您正在这样做)来验证输入,一旦输入有效,您可以使用document.myform.submit()来提交form

您可以参考下面更新的java脚本validate()方法:

function validate() {   
   if(document.TeacherRegistrationForm.teacherId.value=="") {
      document.TeacherRegistrationForm.teacherId.value= "Please Enter a valid ID";
      document.TeacherRegistrationForm.teacherId.focus();
      alert("Please enter valid ID");
      return;
    } else{
      document.TeacherRegistrationForm.submit();
    }
}