首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp透过数据库验证用户名和密码

2013-10-12 
jsp通过数据库验证用户名和密码小弟初学JSP,在看韩顺平的用户登录管理系统时,跟着视频敲的代码,验证用户名

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);
        //打印出结果为admin

改成   System.out.println("-"+p+"-");

if(rs.next()){
            System.out.println(rs.getString(1));
            //打印出结果为admin

改成   System.out.println("-"+rs.getString(1)+"-");
[解决办法]
一步一步测试吧,先看页面取得到值没有?然后看看数据连接正确没有?
[解决办法]
ResultSet rs=sm.executeQuery("select passwd from users where userName='" + u + "'");

热点排行