jsp中取到用户名和密码之后怎么和数据库匹配?
我已经从上一个页面取到了交互数据,怎么在这个JSP页面和数据库进行匹配啊?匹配到之后是否还需进行判断?是否还需要单独创建两个变量?这是取到数据代码:<%request.s...
我已经从上一个页面取到了交互数据,怎么在这个JSP页面和数据库进行匹配啊?
匹配到之后是否还需进行判断?是否还需要单独创建两个变量?
这是取到数据代码:
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String code=request.getParameter("code");
这是利用while查找的代码:
while(rs.next()){
out.print("<tr>");
out.print("<td>"+rs.getString("name")+"</td>");
out.print("<td>"+rs.getInt("code")+"</td>");
}
接下来不知道怎么进行了。。 展开
匹配到之后是否还需进行判断?是否还需要单独创建两个变量?
这是取到数据代码:
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String code=request.getParameter("code");
这是利用while查找的代码:
while(rs.next()){
out.print("<tr>");
out.print("<td>"+rs.getString("name")+"</td>");
out.print("<td>"+rs.getInt("code")+"</td>");
}
接下来不知道怎么进行了。。 展开
2个回答
展开全部
直接用 select语句查询就可以了
rs=sql.execute("select * from 表名 where user='"+name+"' and password='"+code+"' ")
if(rs.next()){}
判断rs.next(),如果有结果就在{}里面执行操作,比如返回登录之后的页面
更多追问追答
追问
if(rs.next()){}这个语句是说如果表中有有匹配的信息就怎样,但这个需要做循环吗,万一表中不同用户存在重复的密码,那这个方法会出现问题吗?
追答
rs.next() 是返回bool型数据。如果为真,则证明存在这个记录。
不用循环,这个只是检测上面select语句有没有返回的结果。
不同用户重复密码,根本就不影响。因为你是用的select语句查询的数据库,只有用户名密码匹配之后,才能返回结果的哈
展开全部
大致是这样
select * from 用户表 where 用户 = name and 密码 = code
然后看rs的长度是不是1
不是1那就是错的 用户名或密码错误
又或者select * from 用户表 where 用户 = name
然后看rs的长度是不是1
不是1那就是错的,用户名不存在
如果是1,然后拿数据库中的code跟传回来的code比较
不一样的话就是密码错误
select * from 用户表 where 用户 = name and 密码 = code
然后看rs的长度是不是1
不是1那就是错的 用户名或密码错误
又或者select * from 用户表 where 用户 = name
然后看rs的长度是不是1
不是1那就是错的,用户名不存在
如果是1,然后拿数据库中的code跟传回来的code比较
不一样的话就是密码错误
更多追问追答
追问
那我这个 while 循环的查询其实是不必要的是吗?
还是while查询之后再通过你说的
select * from 用户表 where 用户 = name and 密码 = code做判断
之后判断rs的长度用if(rs.Length == 1){}语句可以吗?
追答
可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询