jsp和java怎么实现注册用户登录?要求注册到数据库的用户才能登录。
以下是我写的servlet代码,但是为什么只有数据库中最上面的第一个用户才能登录成功?求各位高手帮忙看看!publicvoiddoPost(HttpServletRequ...
以下是我写的servlet代码,但是为什么只有数据库中最上面的第一个用户才能登录成功?求各位高手帮忙看看!
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username1 = request.getParameter("username") ;//获取jsp界面用户名
String psw = request.getParameter("password") ;//获取jsp界面密码
//登记JDBC驱动程序
try{
Class.forName("oracle.jdbc.driver.OracleDriver") ;
}catch(ClassNotFoundException e){
e.printStackTrace() ;
System.out.println("Class Not Found Exception . ") ;
}
//连接URL
String url ="jdbc:oracle:thin:@localhost:1521:bank" ;
Connection conn = null ;
Statement stmt = null ;
ResultSet rs = null ;
try{
conn = DriverManager.getConnection(url, "system","123456") ;
stmt = conn.createStatement() ;
//SQL语句
String sql = "select * from BANK_USER " ;
rs = stmt.executeQuery(sql) ;//返回查询结果
}catch(SQLException e){
e.printStackTrace() ;
}
HttpSession session = request.getSession() ;
session.setAttribute("username", username1) ;
try{
//如果记录集非空,表明有匹配的用户名和密码,登陆成功
// 登录成功后将username设置为session变量的username
// 这样在后面就可以通过 session.getAttribute("username") 来获取用户名,
// 同时这样还可以作为用户登录与否的判断依据
if(rs.next()){ //遍历查询
String username = rs.getString("username");//取得数据库用户名
String password = rs.getString("password");//取得数据库密码
if(password.equals(psw)){ //输入密码和数据库匹配
session.setAttribute("message","登陆成功!欢迎你" + username);
response.sendRedirect("jsp/purchase/purchase.jsp");
}else {
System.out.println("password: fasle" );
response.sendRedirect("index.jsp");
request.setAttribute("mess","用户名或密码错误!");
}
} else {
System.out.println("rs.next():false");
response.sendRedirect("index.jsp");
}
}catch(Exception e){
e.printStackTrace();
}
} 展开
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username1 = request.getParameter("username") ;//获取jsp界面用户名
String psw = request.getParameter("password") ;//获取jsp界面密码
//登记JDBC驱动程序
try{
Class.forName("oracle.jdbc.driver.OracleDriver") ;
}catch(ClassNotFoundException e){
e.printStackTrace() ;
System.out.println("Class Not Found Exception . ") ;
}
//连接URL
String url ="jdbc:oracle:thin:@localhost:1521:bank" ;
Connection conn = null ;
Statement stmt = null ;
ResultSet rs = null ;
try{
conn = DriverManager.getConnection(url, "system","123456") ;
stmt = conn.createStatement() ;
//SQL语句
String sql = "select * from BANK_USER " ;
rs = stmt.executeQuery(sql) ;//返回查询结果
}catch(SQLException e){
e.printStackTrace() ;
}
HttpSession session = request.getSession() ;
session.setAttribute("username", username1) ;
try{
//如果记录集非空,表明有匹配的用户名和密码,登陆成功
// 登录成功后将username设置为session变量的username
// 这样在后面就可以通过 session.getAttribute("username") 来获取用户名,
// 同时这样还可以作为用户登录与否的判断依据
if(rs.next()){ //遍历查询
String username = rs.getString("username");//取得数据库用户名
String password = rs.getString("password");//取得数据库密码
if(password.equals(psw)){ //输入密码和数据库匹配
session.setAttribute("message","登陆成功!欢迎你" + username);
response.sendRedirect("jsp/purchase/purchase.jsp");
}else {
System.out.println("password: fasle" );
response.sendRedirect("index.jsp");
request.setAttribute("mess","用户名或密码错误!");
}
} else {
System.out.println("rs.next():false");
response.sendRedirect("index.jsp");
}
}catch(Exception e){
e.printStackTrace();
}
} 展开
展开全部
刚学的jsp吧 ,注册这入门的问题,代码还不是分层写的,看起来很乱啊....干嘛把表单中的username放到session中,应该先从数据库查出来,有这个数据之后,在把这个用户名放到session里,想要的我可以帮您写写,几分钟的事
更多追问追答
追问
你说的确实,session这我挺晕的。分层是因为还有其他功能呢,哎棘手啊,再有半个月该交了。
追答
select * from BANK_USER 你这条sql语句得出的数据库BANK_USER中所有的数据,你直接String password = rs.getString("password");//取得数据库密码----这条语句当然永远取得第一条数据了,就是你说的都是admin,其他的你都没有取出来当来只能admin可以登录而其他的没有效果了,思路有问题,你应该是 select * from BANK_USER where username=? 进去查数据库表,然后从取得的数据组取出password数据,和表单中传来的密码进行匹配....ResultSet rs取数据你还很蒙,按照你的思路,把if(rs.next() ) 改为 while(rs.next())进行循环取数据,在匹配if(rs.next())这只是取第一条,因为只判断一次,所以永远只去取第一条数据后面的你都省略了.....多练练,i以后就熟悉了,基础要打好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-14 · 知道合伙人互联网行家
关注
展开全部
只有附上你的数据库设计才可以帮你写代码,这很简单的。没什么难度的。
更多追问追答
追问
没有数据库设计。。。
追答
那你数据如何存储?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询