servletA:HttpSession session = request.getSession(); session.setAttribute("id", id);
servletB:HttpSession session = request.getSession(); session.getAttribute("id");得到的值正确
servletC:HttpSession session = request.getSession(); session.getAttribute("id");得到的值为空null;
B和C的区别就是A跳到B,而没有跳到C;
不在servletA中调用B和C呢?单独使用B和C不行吗
追答可以。但要在同一个浏览器里。比如调完A之后,直接改写URL,调B或者C都可以。不一定要用跳转。
追问改写Url后session中获取的Id为空
追答我测试了,没有问题,一切正常。你再看看是不是其他地方配错或有问题吧。
在servletA中保存了登录用户信息,进入了主页面index.jsp
在index.jsp页面中可使用用户名
在index.jsp页面中想查看用户信息,执行servletC,获取用户信息,但却显示未登录
.你必须先执行过最少一次
HttpSession session = request.getSession(); session.setAttribute("id", id);
这样你的session的属性里才会有值 才能用session.getAttribute取到值
还有说道用户登录 jsp关于用户信息可以全靠web.xml配合容器的xml文件完成 不需要写一行java代码(当然用数据库保存就是另外一说了)