日期:2014-05-18  浏览次数:20640 次

Help!servlet中条件跳转的问题!!
*******做用户登录的Servlet文件中的一段:
当UserId 和Pwd匹配的时候可以跳转到../MyOO.jsp,但是不匹配的时候,else语句不执行~!!
List<UserTab> list = dsi.getUserInfo(UserId,Pwd);
if (list != null && list.size() != 0) {
for (int i = 0; i < list.size(); i++) {
UserTab usertab = list.get(i);
if (usertab.getUserId().equals(UserId)&& usertab.getPwd().equals(Pwd)){
usertab = new UserTab(UserId,Pwd);
System.out.println("  qqqq    ");
response.sendRedirect("../MyOO.jsp");

}else{
System.out.println("  qqqqgfgf    ");
response.sendRedirect("../Customer/test2.jsp");

break;
}

}
System.out.println(" ******************************    ");
}
 else {
 response.sendRedirect("../login.jsp");
}

------解决方案--------------------
引用:
Quote: 引用:

List<UserTab> list = dsi.getUserInfo(UserId,Pwd);
boolean flag = false;//默认不存在
if (list != null && list.size() != 0) {
for (int i = 0; i < list.size(); i++) {
UserTab usertab = list.get(i);
if (usertab.getUserId().equals(UserId)&& usertab.getPwd().equals(Pwd)){
usertab = new UserTab(UserId,Pwd);
flag=true;
break;
}

}
if(flag){
response.sendRedirect("../MyOO.jsp");
}else
    response.sendRedirect("../Customer/test2.jsp");
}
依然不行= =else语句跳不进去、、
不对,你的list最多就一个元素是吧,那不用循环啊,这么写:
boolean flag = false;//默认不存在
List<UserTab> list = dsi.getUserInfo(UserId,Pwd);
if(list.size() > 0){//表明该用户存在
    flag = true;
}
if(flag){
    response.sendRedirect("../MyOO.jsp");
}else
    response.sendRedirect("../Customer/test2.jsp");
}

------解决方案--------------------
你看你的代码,首先你判断用户名密码是否正确,因为你填的是不正确的所以查询出的list就为空了对吧?
第一个if就过不去,所以直接跳到最后一个else而重新回到登陆页面,你那红色的代码永远也执行不了?。
不知道你懂了没?