求教: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);
    }

}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 电容作用分类_电容的分类与识别

    电容作用分类_电容的分类与识别电容分类的N种详解,有图有“真相”电子发烧友网今天一、瓷介电容器(CC)1.结构用陶瓷材料作介质,在陶瓷表面涂覆一层金属(银)薄膜,再经高温烧结后作为电极而成。瓷介电容器又分1类电介质(NPO、CCG));2类电介质(X7R、2X1)和3类电介质(Y5V、2F4)瓷介电容器。2.特点1、类瓷介电容器具有温度系数小、稳定性高、损耗低、耐…

    2022年8月22日
    11
  • vue md编辑器_vue代码编辑器

    vue md编辑器_vue代码编辑器vue3简单的md编辑器

    2022年9月23日
    0
  • 操作系统实验一进程调度算法模拟_常用的进程调度算法有

    操作系统实验一进程调度算法模拟_常用的进程调度算法有今日闲来无聊,发现很早之前写的操作系统实验还没有整理,再加上有很多人问,索性就发成博客吧。实验一进程调度算法一、实验目的  用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解.二、实验指导设计一个有N个进程共行的进程调度程序。  进程调度算法:分别采用先来先服务算法、短作业优先算法、高响应比优先算法实现。  每个进程用一个进程控制块(PCB)表示。…

    2022年9月1日
    3
  • java使用mongDB的根据数字大小比较查询 和 命令行基础查询

    java使用mongDB的根据数字大小比较查询 和 命令行基础查询java使用mongDB的根据数字大小比较查询 和 命令行基础查询

    2022年4月24日
    45
  • 【科普贴】SPI接口详解

    【科普贴】SPI接口详解一、SPI接口简介SPI接口是一种同步串行总线(SerialPeripheralInterface)多用于Flash存储器(如NORFlash&NandFlashd),ADC、LCD控制器等外围器件的通讯接口。大大增强了处理器的外设扩展能力。SPI接口缩写SSEL:slaveselect,常常也被写作CS(chipselect)或SS(slaveselect)SCK:serialclock,常常也写作SCLK或SCLMISO:masterinputslaveoutpu

    2022年6月18日
    51
  • 用ThreadLocal来优化下代码吧

    用ThreadLocal来优化下代码吧

    2020年11月19日
    183

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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