日期:2014-05-17  浏览次数:20688 次

jsp通过数据库验证用户名和密码
小弟初学JSP,在看韩顺平的用户登录管理系统时,跟着视频敲的代码,验证用户名和密码时通不过,求大神指导!有三个jsp,Login.jsp LoginCl.jsp wel.jsp.代码如下:

LoginCl.jsp:
String u=request.getParameter("username");
     String p=request.getParameter("passwd");
     out.println(u);
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
     Connection ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=users","sa","sa");
     Statement sm=ct.createStatement();
     //查询
     ResultSet rs=sm.executeQuery("select passwd from users where userName='admin'");
    
     //根据结果作判断

if(rs.next()){
if(rs.getString(1).equals(p)){
response.sendRedirect("wel.jsp?user="+u);
}else{

response.sendRedirect("Login.jsp");
}
}else{
response.sendRedirect("Login.jsp");
}

wel.jsp:
  <body>
     登陆成功!恭喜恭喜<%=request.getParameter("user") %><br>
     <a href="Login.jsp">重新登录</a>
  </body>

数据库名为users,里面有userName为admin的用户,密码为admin,我在登录界面输入后怎么还是会跳转到Login.jsp让我重新输入呢?
jsp 数据库

------解决方案--------------------
自己测试一下
1.取没取到页面输入的值
2.数据库能不能连接上
3.数据库连接上了的话查询出来的结果是否正确

这些都弄清楚了就应该知道问题出在哪了
------解决方案--------------------
估计你判断那里错了。看看吧
------解决方案--------------------
	ResultSet rs=sm.executeQuery("select passwd from users where userName='admin'");


你这里直接取userName='admin'了 
上面的
String u=request.getParameter("username");
这个是用来干嘛的?
------解决方案--------------------
你把用户和密码out.print出来看看是不是对的,说不定是<input>里的name和request.getParameter里的不一样呢。
------解决方案--------------------
	ResultSet rs=sm.executeQuery("select passwd from users where userName='admin'");

userName为什么用admin,你不应该用得到的用户名去查询嘛
	ResultSet rs=sm.executeQuery("select passwd from users where userName='u'");

应该这样吧
------解决方案--------------------
if(rs.next())改为while(rs.next())
------解决方案--------------------
 ResultSet rs=sm.executeQuery("select passwd from users.dbo.users where userName='admin'");

------解决方案--------------------
然后把if(rs.next())的else删掉
------解决方案--------------------
if(rs.next()){ // 这个满足条件不 
if(rs.getString(1).equals(p)){// 打印 看看 rs.getString(1)  ,  p
------解决方案--------------------
String p=request.getParameter("passwd");
        System.out.println(p);
     &nbs