java吧 关注:1,249,755贴子:12,732,013

谁能帮我看下我的代码哪错了 登陆功能

只看楼主收藏回复



我没用数据库的时候用if判断单个数据的时候就能跳转页面
所以我感觉其他的代码应该没错 就把这部分粘出来了


IP属地:陕西1楼2016-11-15 15:51回复
    UserDAO 19行空指针异常,最好解决的异常之一,自己学会解决吧。


    2楼2016-11-15 15:54
    回复


      IP属地:陕西3楼2016-11-15 16:02
      回复
        培训学校的代码吗?


        IP属地:北京4楼2016-11-15 17:17
        收起回复
          代码贴全一点


          IP属地:江苏5楼2016-11-15 17:22
          收起回复
            package Util;
            import java.sql.Connection;
            import java.sql.DriverManager;
            import java.sql.SQLException;
            public class DBUtil {
            private static final String USER = "root" ;
            private static final String PASSWORD = "mj199609" ;
            private static final String URL = "jdbc:mysql://localhost:3306/reg" ;
            private static Connection conn = null ;
            static{
            try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(URL,USER,PASSWORD);
            }catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }catch(Exception e)
            {e.printStackTrace();}
            }
            public static Connection getConnection(){
            return conn ;
            }
            }


            IP属地:陕西6楼2016-11-15 17:32
            回复
              package Dao;
              import java.sql.Connection;
              import java.sql.PreparedStatement;
              import java.sql.ResultSet;
              import java.sql.SQLException;
              import java.util.ArrayList;
              import java.util.List;
              import Model.User;
              import Util.DBUtil;
              public class UserDao {
              public List<User> query() throws SQLException{
              Connection conn = DBUtil.getConnection();
              PreparedStatement ptmt = null ;
              ResultSet rs = null ;
              String sql = "select * from user ";
              ptmt = conn.prepareStatement(sql);
              rs = ptmt.executeQuery() ;
              User user = null ;
              List<User> list = new ArrayList<User>() ;
              while(rs.next()){
              user = new User() ;
              user.setUsername(rs.getString("username"));
              user.setPassword(rs.getString("password"));
              list.add(user);
              }
              rs.close();
              ptmt.close();
              conn.close();
              return list;
              }
              }


              IP属地:陕西7楼2016-11-15 17:33
              回复
                public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                request.setCharacterEncoding("utf-8");
                UserDao dao = new UserDao() ;
                List<User> ls = new ArrayList<User>();
                try {
                ls=dao.query();
                } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                }
                String name = request.getParameter("name");
                String password = request.getParameter("password");
                for(int i=0 ; i<ls.size() ; i++){
                if(name.equals(ls.get(i).getUsername()) && password.equals(ls.get(i).getPassword())){
                request.getRequestDispatcher("/Success.jsp").forward(request,response);
                }
                else{
                request.getRequestDispatcher("/Fail.jsp").forward(request,response);
                }
                }


                IP属地:陕西8楼2016-11-15 17:33
                回复
                  dao.getUsername.equals(name) 把name和password写到equals后面试试


                  11楼2016-12-25 19:59
                  回复
                    我觉得这个方法不是很好


                    IP属地:广西来自Android客户端12楼2017-01-06 09:57
                    回复
                      最好解决的异常,没有之一!


                      13楼2017-01-06 09:59
                      回复
                        ls.get(i).getUsername())和ls.get(i).getPassword()有空就会报错


                        IP属地:四川14楼2017-01-06 10:01
                        回复
                          debug 模式一步步调试下去,他说你userDao 19行,看看你哪个对象为null了。
                          另外登录验证sql 这么写也是没谁了,登录验证的sql 至少有这么几步,
                          1.根据用户名查询是否存在该用户。(没有则提示账户不存在)
                          2.存在该用户在根据用户名查出该用户的密码
                          3.最后将前端的密码和查出来的密码比对。(不正确则提示密码错误)。
                          至于具体的sql,我就不说了,你自己去想想吧


                          15楼2017-01-06 11:00
                          回复
                            有个东西叫框架你造吗?还用这么写!有点low了!


                            来自Android客户端16楼2017-01-08 23:07
                            收起回复
                              DEBUG看看你19行的conn对象是不是空的


                              IP属地:福建19楼2017-01-09 10:02
                              回复