数据库里面的账号和密码却不能登录的有关问题?
数据库里面的账号和密码却不能登录的问题??
我在做留言板,登录页面是logon.jsp,然后把它提交给logon.java的servlet处理,这个logon.java如下:
我的UserBean.java如下:
这两个java文件都能编译,控制台显示是(1)(2)有问题。同时我用(2)的这个sql语句也能够在数据库里面查询出想要的结果,sql语句应该也没错,但就是不能登录。我把数据库中显示的以前的账号和密码拿来登录,结果也不行。
总之,问题就是数据库中的帐户密码不能登录,从来就没有登录成功过。
备注:若登陆成功,则会跳转到articlelist.jsp页面,但若单独访问这个页面,则报出500错误;于是我猜测,会不会是我的logon.java和UserBean.java都没有问题,而是我的articlelist.jsp有问题呢?望高手多多指教!
------解决方案--------------------
在跳转的语句后面加一个return;语句就行了。
比如在:
dispatcher=request.getRequestDispatcher("/ch/ArticleList");
return;
------解决方案--------------------
,status"+"FROM userinfo
这里直接写,status FROM userinfo就可以了
如果用+ from前面应该有个空格啊
------解决方案--------------------
看看你的UserBean的logon方法最后总是会返回return null;的,可以试着删除后在catch和finally块中加return null
我在做留言板,登录页面是logon.jsp,然后把它提交给logon.java的servlet处理,这个logon.java如下:
- Java code
//用户登录处理方法,登录servlet的实现 package ch; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.Collection; import utils.*; public class Logon extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { //取得用户提交的用户名和密码 String username=request.getParameter("username"); String password=request.getParameter("password"); //进行用户合法性验证 UserInfo user=UserBean.logon(username, password);..........................................(1) //对登录结果进行处理 RequestDispatcher dispatcher=null; if(user!=null) { //验证通过 HttpSession session=request.getSession(); session.setAttribute("session_userinfo",user); //跳转到留言列表servlet dispatcher=request.getRequestDispatcher("/ch/ArticleList"); } else { //设置错误提示信息 request.setAttribute("msg","登录失败!可能是用户名密码输入错误或者账号被锁定!"); //跳转到用户登录页面 dispatcher=request.getRequestDispatcher("/logon.jsp"); } dispatcher.forward(request,response); } }
我的UserBean.java如下:
- Java code
//用户注册方法 package ch; import java.sql.*; import utils.*; public class UserBean { //用户登录 public static UserInfo logon(String username,String password) { Connection conn=null; Statement st=null; ResultSet rs=null; try { //得到数据库的连接 conn=DatabaseBean.getConnection(); st=conn.createStatement(); //生成查询用户信息的语句 String sql="SELECT userid,username,password,email,type,status"+"FROM userinfo WHERE username='" +username+"' AND password='"+password+"' AND status="+UserInfo.STATUS_NORMAL; //执行查询语句 rs=st.executeQuery(sql);....................................................(2) while(rs.next()) { //得到查询结果 UserInfo user=new UserInfo(); user.setUserID(rs.getInt(1)); user.setUsername(rs.getString(2)); user.setPassword(rs.getString(3)); user.setEmail(rs.getString(4)); user.setType(rs.getInt(5)); user.setStatus(rs.getInt(6)); return user; } } catch(SQLException ex) { ex.printStackTrace(System.err); } finally { //关闭数据库的连接 DatabaseBean.close(rs,st,conn); } return null; } }
这两个java文件都能编译,控制台显示是(1)(2)有问题。同时我用(2)的这个sql语句也能够在数据库里面查询出想要的结果,sql语句应该也没错,但就是不能登录。我把数据库中显示的以前的账号和密码拿来登录,结果也不行。
总之,问题就是数据库中的帐户密码不能登录,从来就没有登录成功过。
备注:若登陆成功,则会跳转到articlelist.jsp页面,但若单独访问这个页面,则报出500错误;于是我猜测,会不会是我的logon.java和UserBean.java都没有问题,而是我的articlelist.jsp有问题呢?望高手多多指教!
------解决方案--------------------
在跳转的语句后面加一个return;语句就行了。
比如在:
dispatcher=request.getRequestDispatcher("/ch/ArticleList");
return;
------解决方案--------------------
,status"+"FROM userinfo
这里直接写,status FROM userinfo就可以了
如果用+ from前面应该有个空格啊
------解决方案--------------------
看看你的UserBean的logon方法最后总是会返回return null;的,可以试着删除后在catch和finally块中加return null