当前位置: 代码迷 >> J2EE >> session.getAttribute()得到的值为空解决方法
  详细解决方案

session.getAttribute()得到的值为空解决方法

热度:31   发布时间:2016-04-17 23:27:23.0
session.getAttribute()得到的值为空
              我是一个java小手,请大手们指点一下我在练习写Jsp的时候遇到的这个问题:我在login.jsp这个页面先用表单吧参数传给自身,然后写了session.setAttribute("admin","true"),再重定向到Std_Info.jsp,用session.getAttribute("admin")得到的admin的值不是true,而是空,我也在网上查了很久,有朋友有遇到类似的问题,我照说的做可是还是得到的null,我没辙了。下面是login.jsp和Std_Info的部分代码:
login.jsp:

<%
String action = request.getParameter("action");
if(action != null && action.equals("login")){
String name = request.getParameter("name");
String password = request.getParameter("password");
if(name == null || !name.equals("admin")){
%>
<font color="red" size="7" >用户名不对</font>
<% 
}else if(password == null || !password.equals("admin")){
%>
<font color="red" size="7">密码不对</font>
<% 
}else if(name.equals("admin") && password.equals("admin")){
session.setAttribute("admin", "true");
response.sendRedirect("Std_Info.jsp);
}

 %>
            <form name="form1" action="Login.jsp" method="post" >
<input type="hidden" name="action" value="login"><table width="100%" border="0" cellspacing="0" cellpadding="0">
           ..........
            </table></form>

[/size]


然后这是Std_Info的相关代码:
Stu_Info.jsp:

<% 
  boolean login;
  String admin = (String)session.getAttribute("admin");
  //out.println(admin);
  if(admin != null && admin.equals("true")){
      login = true;
 }else{
    login = false;
}
 %> 


知道的大神解答一下吧,麻烦了。因为这是第二次提问题,如果描述太繁琐了请见谅,条件不够我再加。谢谢了
------解决思路----------------------
程序没有走到setattribute啊,自己检查下程序执行流程,if条件检查下
------解决思路----------------------
你确定 name.equals("admin") && password.equals("admin")为true?
------解决思路----------------------
试下把重定向换成转发看看。
------解决思路----------------------

else if("admin".equals(name) && "admin".equals(password)){
            session.setAttribute("admin", "true");   
            response.sendRedirect("Std_Info.jsp);
        }

试一试
------解决思路----------------------
String name = request.getParameter("name");
String password = request.getParameter("password");
下面加上
System.out.println("name====== "+name);
System.out.println("password ====== "+password );
再看看控制台输出是什么
  相关解决方案