大家帮忙看看,这段jsp代码哪里有问题,到输出id,id1,password,password1都正常,但就是不执行if语句,直接执行了后面的登录失败的语句
String id1="";
String password1="";
String id=request.getParameter("id");
session.setAttribute("username","id");
id=new String(id.getBytes("ISO8859-1"),"gb2312");
String password=request.getParameter("password");
password=new String(password.getBytes("ISO8859-1"),"gb2312");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
while(rs.next()){
id1=rs.getString("id");
password1=rs.getString("password");
out.println(id1);
out.println(password1);
out.println(id);
out.println(password);
if(id1.equals(id)&&password1.equals(password)){
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<% }
}
%>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
String id1="";
String password1="";
String id=request.getParameter("id");
session.setAttribute("username","id");
id=new String(id.getBytes("ISO8859-1"),"gb2312");
String password=request.getParameter("password");
password=new String(password.getBytes("ISO8859-1"),"gb2312");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
while(rs.next()){
id1=rs.getString("id");
password1=rs.getString("password");
out.println(id1);
out.println(password1);
out.println(id);
out.println(password);
if(id1.equals(id)&&password1.equals(password)){
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<% }
}
%>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
解决方案 »
- jsp的问题,纠结好几天了。求高人指点。
- tomcat启动时关闭不加载的项目
- 我是新手,请教一个javascrip问题,急!!!!拜托了。。。
- ie7.0跟ie6.0 中的问题
- 请各位大侠救急!现有一客户系统pool.properties文件丢失,tomcat启动不起来,请赐教!!!
- Tomcat 一启动,stdout.log 就出现 IOException while loading persisted sessions
- JAVA书籍
- 请问java.util.vector这个类主要有什么用?用在那方面?
- * resin 并不像想像中的那么美~~~
- 对servlet的疑惑:servlet有什么优势呢?
- JSP生成访问者信息的图片
- 关于递归算法,如何在HQL语句里面使用???
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
while(rs.next()){
id1=rs.getString("id");
password1=rs.getString("password");你把查询sql改成:
select id, password from customer where id='"+id+"';你也可以在打印下,id1 and password1.看看取出来的值是多少,我估计是""..所以if的时候为false了,走到else中,所以,失败...
String password1="";
String id=request.getParameter("id");
session.setAttribute("username","id");
id=new String(id.getBytes("ISO8859-1"),"gb2312");
String password=request.getParameter("password");
password=new String(password.getBytes("ISO8859-1"),"gb2312");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
while(rs.next()){
id1=rs.getString("id");
password1=rs.getString("password");
out.println(id1);
out.println(password1);
out.println(id);
out.println(password);
if(id1.equals(id)&&password1.equals(password)){
out.println("<script>");
out.println("alert('恭喜你,登录成功!');");
out.println("window.location.href='index.jsp';");
out.println("</script>");
}
}
out.println("<script>");
out.println("alert('用户名或密码错误,请重新输入!');");
out.println("window.location.href='index.jsp';");
out.println("</script>");
%>
将字符串"id",放到session中,也不对吧
out.println(id1);
out.println(password1);
out.println(id);
out.println(password);
出来的值符合判断标准的话,他是会进if里面的
但是。if完后还是会走下面的“alert('用户名或密码错误,请重新输入!'”
你应该把这一块放在else里面
String password1="";
String id=request.getParameter("id");
id=new String(id.getBytes("ISO8859-1"),"gb2312");
session.setAttribute("username","id");
String password=request.getParameter("password");
password=new String(password.getBytes("ISO8859-1"),"gb2312");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
while(rs.next()){
id1=rs.getString("id");
password1=rs.getString("password");
out.println(id1);
out.println(password1);
out.println(id);
out.println(password);
}
if(id1.equals(id)&&password1.equals(password)){
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<% } %>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
试试这个
String password1="";
String id=request.getParameter("id");
id=new String(id.getBytes("ISO8859-1"),"gb2312");
session.setAttribute("username","id");
String password=request.getParameter("password");
password=new String(password.getBytes("ISO8859-1"),"gb2312");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
while(rs.next()){
id1=rs.getString("id");
password1=rs.getString("password");
out.println(id1);
out.println(password1);
out.println(id);
out.println(password);
}
if(id1.equals(id)&&password1.equals(password)){
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<% }else{ %>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
<%
}
%>上边那个错了 忘了else 了
你无论上面判断是对是错。页面都会输出:
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
因为这段代码在你判断之外。
就相当于:
if(1==1){
out.println("success");
}
out.println("error");
这样的判断。可能输出success,但永远都会输出:error 。
楼主看明白了。改改就OK了。
我觉得你想是把id放到session中,而不是"id"吧。
括号是我觉得是while循环的括号错了。 各人认为。
<%
if(id1.equals(id)&&password1.equals(password))
{
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<%
}else{
%>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
<%
}
%>
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<%
//在此处加个return试下
return;
}
<%
request.setCharacterEncoding("GBK");
String id=request.getParameter("id");
session.setAttribute("username","id");
String password=request.getParameter("password");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'");
for(int i=0;rs.next();i++){
String id1=rs.getString("id");
String password1=rs.getString("password");
// 主要无论是表的用户名和用户密码或者传过来的参数的用户名和密码都不应该为空,因为这是个人的关键信息
if(id.equals(id1) && password.equals(password1)){
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<%
break;
}}%>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
<%
String id1="";
String password1="";
String id=request.getParameter("id");
id=new String(id.getBytes("ISO8859-1"),"gb2312");
session.setAttribute("username","id");
String password=request.getParameter("password");
password=new String(password.getBytes("ISO8859-1"),"gb2312");
ResultSet rs=jdbcbean.executeQuery("select * from customer where id='"+id+"'and password='"+password+"'");
if(rs.next()){
%>
<script>
alert("恭喜你,登录成功!");
window.location.href='index.jsp';
</script>
<%
}
else
{
%>
<script>
alert("用户名或密码错误,请重新输入!");
window.location.href='index.jsp';
</script>
<%
}
%>