JSP简单的页面登录验证问题

利欲熏心 2014-12-09 04:52:08
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page
import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet "%>
<html>
<body>
<%
String name = (String) request.getParameter("name");//读取用户界面输入
String psd = (String) request.getParameter("password");//读取用户界面输入密码
Class.forName("com.mysql.jdbc.Driver"); //加载驱动
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "root");//创建连接
String sql = "select id , username, password from scy where name = '"
+ name + "' and password='" + psd + "'";
PreparedStatement pstmt = null;
ResultSet rs = null;
boolean flag = false;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();//查询
while (rs.next()) { //遍历查询结构,现实在页面中
out.print(flag);
flag = true;
out.print(flag);
break;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null)rs.close();
if (pstmt != null)pstmt.close();
if (conn != null)conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (flag) {
out.print(flag);

request.getRequestDispatcher("Login_yes.jsp").forward(request,response);
} else {
request.getRequestDispatcher("Login_No.jsp").forward(request,response);
}
%>

</body>
</html>
不管如何,都是跳转错误页面是为什么
...全文
447 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑兔子 2014-12-10
  • 打赏
  • 举报
回复
楼主,我已经测过你的代码了,代码没问题!!!你是不是没jar包啊!!!
黑兔子 2014-12-10
  • 打赏
  • 举报
回复
while (rs.next()) { //遍历查询结构,现实在页面中 out.print(flag); flag = true; out.print(flag); break; } 这2个flag打印的出来?感觉是你没连上数据库!
利欲熏心 2014-12-10
  • 打赏
  • 举报
回复
已经在数据里加了一个正确值,所以一直打正确的还是往错误页面跳
黑兔子 2014-12-10
  • 打赏
  • 举报
回复
或者直接name,psd赋数据库里面的值,看下跳转,如果有问题就是数据库连接那边的?
黑兔子 2014-12-10
  • 打赏
  • 举报
回复
你把用户名和密码打印出来,看下是不是空的!!有可能没有值!!
利欲熏心 2014-12-10
  • 打赏
  • 举报
回复
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet "%> <html> <body> <% String name = (String) request.getParameter("name");//读取用户界面输入 String psd = (String) request.getParameter("password");//读取用户界面输入密码 Class.forName("com.mysql.jdbc.Driver"); //加载驱动 Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "root");//创建连接 String sql = "select id , name, password from scy where name = '" + name + "' and password='" + psd + "'"; PreparedStatement pstmt = null; ResultSet rs = null; boolean flag = false; try { pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery();//查询 while (rs.next()) { //遍历查询结构,现实在页面中 out.print(flag); flag = true; out.print(flag); break; } } catch (Exception e) { e.printStackTrace(); } finally { try { if (rs != null)rs.close(); if (pstmt != null)pstmt.close(); if (conn != null)conn.close(); } catch (Exception e) { e.printStackTrace(); } } if (flag) { out.print(flag); response.sendRedirect("Login_yes.jsp"); } else { response.sendRedirect("Login_No.jsp"); } %> </body> </html>
利欲熏心 2014-12-10
  • 打赏
  • 举报
回复
不好意思那里我改过了
黑兔子 2014-12-10
  • 打赏
  • 举报
回复
String sql = "select id , username, password from scy where name = '" + name + "' and password='" + psd + "'"; 楼主你的查询语句 username 你说你改成name了,但是你查询的是username,数据库没这个字段吧!!!
利欲熏心 2014-12-10
  • 打赏
  • 举报
回复
还是没有解决...
Giberson1 2014-12-09
  • 打赏
  • 举报
回复
换一种跳转方式,用response.sendRedirect(“Login_yes.jsp”); 或者 <jsp:forward page="" />都可以的。
利欲熏心 2014-12-09
  • 打赏
  • 举报
回复
能不能帮我改一下。。我实在不知道该怎么改
yanggang832 2014-12-09
  • 打赏
  • 举报
回复
传值的语句呢?
  • 打赏
  • 举报
回复
你判断下呗,你这个最好用servlet去判断吧,用输出语句一行一行测试找错,刚开始这个办法很好用的。
利欲熏心 2014-12-09
  • 打赏
  • 举报
回复
如何改才能正常实现登录成功跳远对的页面,错误跳转错的页面。。。。
利欲熏心 2014-12-09
  • 打赏
  • 举报
回复
我有够菜的...注释完了什么都不显示...
菜鸟程序元 2014-12-09
  • 打赏
  • 举报
回复
先把下边的跳转注释掉看看 能输出什么吧!! 我感觉你那个遍历 有问题 在while循环中break 能跳出来吗!? 【我是没这么用过】
利欲熏心 2014-12-09
  • 打赏
  • 举报
回复
问题是没有报错,就是登录页面不管是打错的还是数据库里面有的 都跳转的错误提示页面..
Acana_Dendi 2014-12-09
  • 打赏
  • 举报
回复
报什么错,用占位符试试
利欲熏心 2014-12-09
  • 打赏
  • 举报
回复
不是 我把username改成name了,我数据库是name的。还是不行,我过谢谢楼上
野树林 2014-12-09
  • 打赏
  • 举报
回复
String sql = "select id , username, password from scy where name = '" + name + "' and password='" + psd + "'"; 这句中红色的地方应该是username吧
加载更多回复(1)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧