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让我重新输入呢?
------解决方案--------------------自己测试一下
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