问题描述
为什么他一直返回false呢?publicbooleanland(){booleanexist=false;UserInfoui=newUserInfo();Stringsql="selectusername,passwordfromuserwhereusername='"+username+"'";JDBCBeanjdbc=newJDBCBean();ResultSetrs=jdbc.executeQuery(sql);try{if(rs.getString("username")==ui.getUsername()){if(rs.getString("password")==ui.getPassword())exist=true;}elseexist=false;}catch(SQLExceptione){e.printStackTrace();}jdbc.close();returnexist;}
解决方案
解决方案二:
LZ换成这样更好哦/***用于验证用户登录**@authorJeelon*@paramuserName*:登录用户名*@parampassword*:登录密码*/publicbooleancheckUser(Stringname,Stringpassword){booleanbool=false;try{connect=newConnDB().getConn();ps=connect.prepareStatement("selectpassWordfromuserswhereuserName=?");ps.setString(1,name);result=ps.executeQuery();if(result.next()){//用户存在if(result.getString(1).trim().equals(password)){//如果密码正确bool=true;}else{bool=false;//密码不正确}}else{bool=false;//用户都不存在}}catch(Exceptione){e.printStackTrace();//TODO:handleexception}finally{this.close();}returnbool;}
解决方案三:
1字符串的值比较使用equals2UserInfoui=newUserInfo();里面的字段也没赋值啊,好好检查下
解决方案四:
哥你再帮我看看我的servletelseif(actionUrl.equals("/land.action")){Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");UserInfoui=newUserInfo();HttpSessionsession=request.getSession();ui.setUsername(username);ui.setPassword(password);if(ui.land()){session.setAttribute("username",username);request.getRequestDispatcher("/landed.jsp").forward(request,response);}elserequest.getRequestDispatcher("/userExist.html").forward(request,response);}}
解决方案五:
这个sevlet中接受到的password怎么在land方法中接收?
解决方案六:
还有用equals具体要怎么写
解决方案七:
引用5楼zfx8827的回复:
还有用equals具体要怎么写
楼主啊你这学的也太乱了。。。
解决方案八:
晕死你这代码写的Stringsql="selectusername,passwordfromuserwhereusername='"+username+"'";这一句写的什么啊你传入的值username从哪来的啊你没定义啊也没从方法参数传入啊还有if(rs.getString("username")==ui.getUsername()){if(rs.getString("password")==ui.getPassword())这一句你确定你是在验证登陆哪有比较字符串这样比较的应该是a.equals();还有好多好多错误·············