Java 如何使JSP页面在没有用户的情况下不转发到servlet';谁的输入?
考虑以下JSP:Java 如何使JSP页面在没有用户的情况下不转发到servlet';谁的输入?,java,jsp,servlets,Java,Jsp,Servlets,考虑以下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" contentTy
<!-- 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>
银行申请
网上银行应用
登录页面-请输入您的用户名和密码
*用户名:
*密码:
视觉外观:
在用户输入用户名和密码之前,我如何使JSP保持不变而不前进到
登录
servlet(以检查输入的正确性) 在登录按钮的onclick
功能中使用javascript取消表单提交,验证用户名和密码字段是否为空,然后提交表单
更新:
在我的代码中,我经常使用按钮
类型而不是
按钮。然后我通过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>
那么我的表格应该是这样的:
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>
提交
我没有测试过任何一个,这只是我的想法。但这就是我所做的
编辑:
您需要获取用户名和密码字段的值,而不仅仅是字段本身,很抱歉输入错误。有几种方法可以做到这一点,最简单的方法可能是让servlet检查请求中的
用户名和密码参数,如果缺少这些参数,则重定向回原始JSP(无论如何,您都应该这样做,不仅仅是您的页面可以命中servlet)
如果您在输入用户名和密码之前不知道请求提交了什么,那么您必须在表单上连接onsubmit事件,如下所示:
<form id="login" action="loginPage" onsubmit="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
。什么意思?你想避免重新加载页面吗?@Happy:不!我想让用户插入输入,而不是在没有任何输入的情况下移动到servlet!否决票?你是认真的吗?使用javasscript onsubmit和if空字段保留在那里。使用JS进行表单验证和提交..这意味着单击submit按钮将触发一个JS函数,该函数将根据成功的验证提交到servlet提交submit,而不是onclick,它是一个提交对象,提交将被执行。我不想要您建议的第一个选择。我想要rst必须同时具有这两个值,然后才能转发到servlet。谢谢,我将尝试使用它。@ron当变量丢失时,servlet能够处理这种情况非常重要,因为没有任何东西可以阻止用户输入http://yourserver/youapp/loginPage
在浏览器中。它会,在servlet收到后发布此帖子之前空字符串作为用户名和密码,它将转发给另一个JSP,该JSP表示出现了问题。10x。