将输入的文本转换为小写
我有一个带有
[snip]
<%
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String globalname = "webeng";
String globalpass = "2009";
if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass))
{
%>
<hr />
<p><b>Howdy, <%= request.getParameter("name") %></b></p>
<hr />
<% }
else if (name !=null | pass!=null && name.equals("") | pass.equals(""))
{
%>
<hr />
<p><b>Ooops, one or more fields are empty. Please fill everything out!!</b></p>
<hr />
<% }
else if (name !=null | pass!=null && !name.equals(globalname) | !pass.equals(globalpass))
{
%>
<hr />
<p><b>Incorrect Userdata!</b></p>
<hr />
<% }
else{
}
%>
[snip]
的 index.jsp现在,例如全局名称是小写的“webeng”。人们可以输入“WebEng”、“webENG”、“WEBENG”及其变体。
我需要将字符串中输入的内容转换为小写。不知何故
String newname = name.toLowerCase();
String newpass = pass.toLowerCase();
不工作。有人知道吗?
这是 Eclipse 在使用
<%
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String globalname = "webeng";
String globalpass = "2009";
String newname = name.toLowerCase();
String newpass = pass.toLowerCase();
if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass))
{
%>
<hr />
<p><b>Howdy, <%= request.getParameter("name") %></b></p>
<hr />
<% }
else if (name !=null | pass!=null && name.equals("") | pass.equals(""))
{
%>
<hr />
<p><b>One or more fields are empty!</b></p>
<hr />
<% }
else if (name !=null && pass!=null && !name.equals(globalname) | !pass.equals(globalpass))
{
%>
<hr />
<p><b>Incorrect Userdata!</b></p>
<hr />
<% }
else{
}
%>
Eclipse 时告诉我的内容: http://i.imagehost .org/0277/2009-11-15_19_34_00.png
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的代码逻辑很奇怪。 Scriptlet 也不会让测试变得更加容易。这是一个具有真实 Java 类风格的 SSCCE ,用于启动和简化测试:
希望这会有所帮助。
编辑#1:请不要发布屏幕截图。将异常和堆栈跟踪复制粘贴到代码块中。顺便说一下,例外情况不是来自 Eclipse。它来自 Tomcat。此外,所讨论的异常(NullPointerException)是相当不言自明的。您访问了一个实际上为空的对象引用。
您需要先进行空检查,例如
Edit #2 我还建议您了解 Java 中的运算符、运算符优先级和表达式分组。看,以下内容不符合“逻辑”,
这是一个很好的教程,可以从这里开始了解这一点: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html 祝你好运。
Your code logic is odd. Scriptlets also doesn't make testing more easy. Here's an SSCCE in flavor of a real Java class to kickoff and ease testing:
Hope this helps.
Edit #1: please do not post screenshots. Copypaste the exception and stacktrace in code blocks. The exception is by the way not coming from Eclipse. It's coming from Tomcat. Also, the exception in question (NullPointerException) is fairly self-explaining. You accessed an object reference which is actually null.
You need to do a null-check first, e.g.
Edit #2 I also recommend you to learn about operators, operator precedence and expression grouping in Java. See, the following isn't "logical"
Here's a good tutorial to start with to learn about this: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html Good luck.
您可以使用 compareToIgnoreCase 并且您不必自己进行转换。
You can use compareToIgnoreCase and you don't have to do the conversion yourself.
您似乎使用 |而不是|| 。这是故意的吗?
You seem to use | in stead of || . Is that intentional?
这里是 equalsIgnoreCase。除非您确实不想使用
|
运算符来简化 or 的快捷方式,否则使用||
通常更安全。我也不想像 BalusC 的回答那样失败,默认条件是“登录”用户,这有些令人不安。Here it is with equalsIgnoreCase. Unless you really don't want to shortcut the or with the
|
operator it's generally safer to go with||
. I also prefer not to fall through to success as in BalusC's answer, there is something unsettling about the default condition being to "login" the user.