servlet 中 if 语句问题
来源:百度知道 编辑:UC知道 时间:2024/06/14 07:55:12
下面是我servlet中的一段代码,无论我之前的网页里usename表单内容是不是“a”,{target = "/bank.jsp";}语句始终得不到执行
String username = request.getParameter("username");
if(username=="a") {target = "/bank.jsp";}
而我将if内中的代码换为if(username.equals("a"))后无论usename表单内容是不是“a”,{target = "/bank.jsp";}语句都能得到执行
我搞不懂啊 到底为什么呢?
谢谢大家回答我
能解决问题的 继续加分
我像1楼2楼可能没看明白我的问题 我现在的问题是用了equals方法后 无论匹不匹配,if内都认为是ture值(即if后语句都会得到执行,这究竟是为什么呢)
String username = request.getParameter("username");
if(username=="a") {target = "/bank.jsp";}
而我将if内中的代码换为if(username.equals("a"))后无论usename表单内容是不是“a”,{target = "/bank.jsp";}语句都能得到执行
我搞不懂啊 到底为什么呢?
谢谢大家回答我
能解决问题的 继续加分
我像1楼2楼可能没看明白我的问题 我现在的问题是用了equals方法后 无论匹不匹配,if内都认为是ture值(即if后语句都会得到执行,这究竟是为什么呢)
这是equals和==的区别,记得是他们俩的内部匹配机制不同,一个比的是内存地址,一个比的是值,反正匹配时候用==不灵,就换equals试试就对了,equals功能更强大一点,它是继承自Object四大方法之一,总之很常使~
String类型对象,需要用equals比较。如下:
if("a".equals(username)) {target = "/bank.jsp";}
user == null永远返回false 不能用==做String类型的比较
就向上面说的 用user.equals();
if(username!=null && username.equals("a"))
这样试试
用我楼上说的方法试一下吧。
你首先看看 不是a也执行的时候 这个username是个什么值??
老大你不要光问啊,你要自己测试啊,打断点,或者简单的输出看看到底那里出问题了,这种问题自己测试下都知道了