考虑以下JSP:
<!-- Bank Application in JAVA -->
<!-- Updates : the DB now is using Hibernate for the SQL queries -->
<!-- 2014 version updates -->
<!-- This is a comment in JSP file -->
<%@ page language="java"
contentType="text/html; charset=windows-1256"
pageEncoding="windows-1256"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Bank application</title>
<link rel="stylesheet"
href="./css/styles.css"
type="text/css"/>
</head>
<body>
<table class="title">
<tr><th>Web Bank application</th></tr>
</table>
<br/>
<fieldset>
<legend>Login Page - please enter your Username and Password</legend>
<form action="loginPage" >
<!-- note we use here a paragraph & font size -->
<!-- Notice we use a Required field !!! -->
<p style="font-size:15px"> <span style="color:red;font-weight:bold;">*</span> Username: <input type="text" name="username"><br> </p>
<p style="font-size:15px"><span style="color:red;font-weight:bold;">*</span> Password : <input type="password" name="password"><br> </p>
<input type="submit" value="Login">
</form>
</fieldset>
<br/>
<br/>
<br/>
<br/>
<br/><br/><br/><br/><br/><br/>
</body></html>
视觉外观:
在用户同时输入Login
和Username
之前,如何使JSP保持不变,而不是转发到Password
servlet(以检查输入的正确性) ?
答案 0 :(得分:2)
在登录按钮的onclick
功能中使用javascript取消表单提交,验证用户名和密码字段是否为空,然后提交表单
更新:
在我的代码中,我经常使用button
类型而不是<input type=submit>
按钮。然后我通过javascript进行基本验证。类似的东西:
function checkFields(){
var user = document.getElementById('username').value;
var pass = document.getElementById('password').value;
if (user == "" || pass == ""){
alert("Username and Password required");
}
else{
document.getElementById("myForm").submit();
}
}
然后我的表格会是这样的:
<form id="myForm">
<input type="text" id="username"></input>
<input type="password" id="password"></input>
<button type="button" id="submitButton" onclick="checkFields()">Submit</button>
</form>
我没有测试任何这个,这只是我的头脑。但这与我的工作有关。
编辑: 您需要获取用户名和密码字段的值,而不仅仅是字段本身,抱歉输入错误
答案 1 :(得分:1)
有几种方法可以做到这一点,最简单的方法是让servlet检查请求中的username
和password
参数,如果缺少原始JSP,则重定向回原始JSP (无论如何,你应该这样做,不只是你的页面可以击中你的servlet)。
如果您认为在输入用户名和密码之前您没有提交请求,那么您必须在表单上连接onsubmit事件,如下所示:
<form id="login" action="loginPage" onsubmit="checkUsernameAndPassword">
然后在JavaScript中编写checkUsernameAndPassword
方法,如下所示:
function checkUsernameAndPassword()
{
var username = document.forms["login"]["username"].value;
var password = document.forms["login"]["password"].value;
return !(username == null || username == '' || password == null || password == '')
}
如果尚未设置取消提交的false
或username
,则此方法将返回password
。