weixin_44112235
weixin_44112235
采纳率33.3%
2019-09-18 15:06

session.getAttribute方法强制类型转换不成功

已采纳

我用(String)session.getAttribute()的方法对session中的内容进行强制转换,
转换出来的数据在控制台上可以正常显示,但是一放到条件判断语句中就无法和
条件的字符进行匹配,好像类型不对一样,这是什么原因?求大神帮忙看下

<%
        //这里强制类型转换
        String name = (String)session.getAttribute("username");
        String passwd =(String)session.getAttribute("passwd");

        if(name != null && passwd != null){

        /*下面的name和passwd判断就总是进else,感觉name和passwd
        就不是String类型*/

            if(name == "1" && passwd == "1"){
                out.print("<script type='text/javascript'>alert('登陆成功!');</script>");
                System.out.print(name+"  "+passwd);
                response.sendRedirect("../admin/AdminMain.jsp");
            }
            else{
                out.print("<script type='text/javascript'>alert('用户名或密码错误,请重试!');</script>");

                System.out.print(name+"  "+passwd);
                response.sendRedirect("../admin/login.jsp");
            }
        }else
            out.print("请登录,<a href = '../admin/login.jsp'>点击此处</a>跳转到登录页面......");

%>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • weixin_42288639 丘穆陵佳馨 2年前

    String类型进行比较的话,用equals,建议换成 if( "1".equals(name) && "1".equals(passwd)){

    点赞 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2年前

    字符串的 == 比较的是 hashCode 地址,而不是内容,所以 if 的条件是不会成立的。
    必须用 equals 比较字符串内容是否相同,而非地址是否相同。

    点赞 评论 复制链接分享

相关推荐