我对我的代码有一个最后的问题。作为最后一件事我想构建一个将忽略区分大小写的函数。所以“用户”,“用户”和“用户”应该以同样的方式对待。我首先想到了如何实现这样的功能。多数民众赞成我尝试过的:
<% if (name != null) { namecheck = name.toLowerCase(); }
else { namecheck = request.getParameter("name"); }
%>
<% if (password != null) { passwordcheck = password.toLowerCase(); }
else { passwordcheck = request.getParameter("password"); }
%>
因为我必须检查它是否为NULL以避免错误,所以实现起来并不容易。
现在我发现我的“namecheck”和“passwordcheck”只能在卷曲的if括号中找到。所以编译器给了我一个“未解决”的错误。如果不写大量的if-else,我不知道如何解决这个问题。
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Practice</title>
</head>
<body>
<h2>Practice</h2>
<h3>Please enter your name and the password.</h3>
<form method="post" action="">
<table>
<tr><td style="text-align:center">Name</td>
<td>
<input type="text" name="name" value="${fn:escapeXml(param.name)}" /></td>
</tr>
<tr><td style="text-align:center">Password</td>
<td><input type="password" name="password" value="${fn:escapeXml(param.password)}" /></td>
</tr>
<tr><td><input type="submit" value="Send" /></td>
</tr>
</table>
</form>
<%-- Testing name and password. --%>
<% String name = request.getParameter("name");
String password = request.getParameter("password");
%>
<%-- Trying to use the .toLowerCase(). --%>
<% if (name != null) { namecheck = name.toLowerCase(); }
else { namecheck = request.getParameter("name"); }
%>
<% if (password != null) { passwordcheck = password.toLowerCase(); }
else { passwordcheck = request.getParameter("password"); }
%>
<% if (namecheck != null && name.equals("user") && passwordcheck != null && password.equals("1234"))
{
%>
<p>Your Input is correct!</p>
<% }
else
{
%>
<p>Your input is not correct!</p>
<% }
%>
</body>
</html>
答案 0 :(得分:2)
只需使用String#equalsIgnoreCase()
。
String name = request.getParameter("name");
String password = request.getParameter("password");
if (name != null && name.equalsIgnoreCase("user")
&& password != null && password.equalsIgnoreCase("1234"))
{
// Pass.
}
我一直在重复:JSP是这个东西的错误位置。我希望这只是“正常”的功课。
答案 1 :(得分:1)
也许我没有看到别的东西,但我没有看到你曾经将namecheck和passwordCheck声明为Strings。如果你想让它们保持可用,只需在你得到'name&pas
的地方声明它们答案 2 :(得分:1)
您必须声明正在使用的变量。
尝试声明namecheck
和passwordcheck
,例如:
<% String name = request.getParameter("name");
String password = request.getParameter("password");
String namecheck = "";
String passwordcheck = "";
%>
答案 3 :(得分:0)
您可以使用jstl核心代码库更改代码。