NutzCN Logo
问答 登录成功页面跳转到别的页面 session值为空
发布于 3152天前 作者 qq_64828a7b 3489 次浏览 复制 上一个帖子 下一个帖子
标签:

我在后端的代码中,已经把session给set好了,跳转页面是在前端页面跳转

后台代码
@IocBean // 声明为Ioc容器中的一个Bean
@At("/loginAction") // 整个模块的路径前缀
@Ok("json:{ignoreNull:true}") // 忽略password和salt属性,忽略空属性的json输出
@Fail("http:500") // 抛出异常的话,就走500页面
//@Filters(@By(type=CheckSession.class, args={"me", "/login"}))//登录后才能访问的入口方法
////已经HttpSession中已经包含me这个attr,所以,这个过滤器会判定为已经登录
//含义是,如果当前Session没有带me这个attr,就跳转到/页面,即首页.
public class LoginAction {

@Inject // 注入同名的一个ioc对像
private LoginInOrOutService loginInOrOutService;
@At
// @Filters 
    public Object login(@Param("name")String name, @Param("password")String password,String inCode,
           HttpServletRequest session) {
             Staff staff=new Staff();
             staff.setName(name);
             staff.setPassword(password);         
             Staff   staff1=(Staff) this.loginInOrOutService.login(staff);
             if(staff1!=null) {  
                   session.setAttribute("me", staff1.getName());
                   System.out.println(staff1.getId());
                   return true;  
               }  
               return false;               
    } 

}
页面代码
$.ajax({
url : base + "/loginAction/login",
type: "POST",
data:$('#loginform').serialize(),//获得数据
error: function(request, a,b) {
alert(a+" "+b);
},
dataType:"json",
success: function(data) {
if (data == true) {
alert("登陆成功");
location.href = "sale.jsp";
} else {
alert("登陆失败,请检查账号密码")
}
}
});
});

能登录成功,就是在sale页面中取出的session值为空,这是怎么回事?

17 回复

这是我取出的session
var me = '<%=session.getAttribute("me") %>';
document.getElementById('staff').value = me;

常见原因:

登陆时用localhost, 然后访问页面用了127.0.0.1

@wendal 是url哪里问题?

检查一下前后的url,cookie里面的session id

@wendal 登录页面和跳转页面都是用同一个url方法

登录页面 url : base + "/loginAction/login",

跳转页面url : base + "/saleaction/newSale",

@qq_64828a7b 那就打印一下session ,分别

@qq_64828a7b 打印session id

@wendal 在后端能打印,在登录页面就不行了

@wendal 也跳转不了到别的页面了

@wendal 在后台可以去到session的值,在页面取出来的是null的

@qq_64828a7b 得打印session id,看看是不是同一个session

@wendal sessionid是一样的,我把登录页面的 var me = '<%=session.getAttribute("me") %>'改为 var me = '<%=session.getId() %>';,跳转到别的页面就可以获得session的值了,怎么会这样的

@wendal session的值不是只要进行会话,不关闭浏览器,都不是一直存在的吗?都可以随时获值的吗?

@qq_64828a7b

你的环境有点神奇吧,老tomcat?把代码整理一下,逐步缩小问题范围

@qq_64828a7b

另外,我说的是对比session的id,得看看是不是同一个session

@wendal 他的这个方法 如果开启了Filter 也跳转不到/login吧

@oceam0000 他遇到的是其他问题

添加回复
请先登陆
回到顶部