求教:session.getAttribute()获取不到session.setAttribute()的值

求教:session.getAttribute()获取不到session.setAttribute()的值很简单的一个web项目中,用户登陆成功后,在后台用session.setAttribute(“user”),记录登陆的用户信息,在跳到主页面(index.jsp)的时候,先经过后台处理,通过登陆的用户信息,查询相应的权限资源,这时用session.getAttribute(“user”),取到用户的信息,现在就是取不到用户信息,取到的值为null,经过不断测试,原因应该在后台登陆方法中的sessi…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

很简单的一个web项目中,用户登陆成功后,在后台用session.setAttribute(“user”),记录登陆的用户信息,在跳到主页面(index.jsp)的时候,先经过后台处理,通过登陆的用户信息,查询相应的权限资源,这时用session.getAttribute(“user”),取到用户的信息,现在就是取不到用户信息,取到的值为null,经过不断测试,原因应该在后台登陆方法中的session.setAttribute(“user”),在其他方法里面都可以使用,但是登陆方法里面的session发送的任何信息,其他地方都接收不到,只有在本方法里面可以接收到,代码如下:

package com.hs.Iservice;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.springframework.stereotype.Service;
import com.hs.dao.IGroupDAO;
import com.hs.dao.IPermissionDAO;
import com.hs.dao.IUserDAO;
import com.hs.model.Group;
import com.hs.model.Permission;
import com.hs.model.User;
import com.hs.service.IUserService;
@Service
public class UserService implements IUserService {
@Resource
private IUserDAO dao;
@Resource
private IGroupDAO gdao;
@Resource
private IPermissionDAO pdao;
//登陆 判断用户名、密码是否正确
@Override
public void login(User user, Boolean ptys , Boolean zgys) throws IOException {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
String urlName = request.getRequestURI();
System.out.println("request地址:"+urlName);
session.setAttribute("abc", "abc");
PrintWriter out = response.getWriter();
User u = dao.login(user.getLoginId(),user.getPassword());
//判断登陆账号、密码是否存在
if (null != u) {
// 普通医生登陆判断
if (ptys == true && u.getGid() == 2) {
session.setAttribute("user", u);
out.write("{\"msg\":\"ok\"}");
// 主管医生登陆判断
} else if (zgys == true && u.getGid() == 1) {
session.setAttribute("user", u);
out.write("{\"msg\":\"ok\"}");
// 管理员登陆判断
} else if (ptys == false && u.getGid() == 0) {
session.setAttribute("user", u);
out.write("{\"msg\":\"ok\"}");
} else {
out.write("{\"msg\":\"gid\"}");
}
} else {
out.write("{\"msg\":\"no\"}");
}
}
//登陆成功后 跳转主页面 根据登陆的用户 查询相应的权限并发送至前台
@Override
public void index() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
session.setAttribute("b", "b");
String urlName = request.getRequestURI();
System.out.println("request时间:"+urlName);
/*User u = (User) session.getAttribute("user"); System.out.println("asdadasdad:"+u.getName());*/
String a = (String) session.getAttribute("abc");
System.out.println("dadadad:"+a);
User use = dao.findById(4);
List<Group> group = gdao.findByGroupId(use.getGid());
List<Permission> list = new ArrayList<Permission>();
String[] strs = group.get(0).getModuleId().split(",");
for (String str : strs) {
list.add(pdao.findById(Integer.parseInt(str)));
}
//处理list集合里面的数据按照指定顺序排序
Collections.sort(list, new Comparator<Permission>(){
@Override
public int compare(Permission arg0, Permission arg1) {
int i = arg0.getNumber()-arg1.getNumber();
return i;
}
});
request.setAttribute("list", list);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181326.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号