前一个将jsp页面能用session获取值,再打开一个新的jsp页面用session怎么获取不到??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前一个将jsp页面能用session获取值,再打开一个新的jsp页面用session怎么获取不到??相关的知识,希望对你有一定的参考价值。

$sessionScope.name我用的是这种形式的。
若可以的话写一下语句吧,谢谢啦!还有就是不能用java程序片,我想知道我通过登录进入到个人中心,在去浏览别人的界面的时候我怎么通过¥获取session

session没有保存,你跳转页面的时候是不是用了转发而是没有使用重定向

要使用

response.sendRedirect(URL)

而不是使用Response.sentRedirect(URL).forward(request,response);这个方法转发

因为转发是无法保存session会话的


你的EL取值是对的,如果已setAttritube了的话,就是上面的错误了

参考技术A 你确定你登陆的时候把用户放到session中了?如果放进去了,获取当前登陆人的信息就是这样啊!$sessionScope.user.name 参考技术B 如果session.setAttributes("name","张三")。。。直接$name 参考技术C 这种写法是正确的,你没有重启一个浏览器吧?这样会产生一个新的session对象 参考技术D 直接用el表达式比如session保存用户user $user.userName追问

怎么保存啊 有例子吗

追答

。。。。如果session.setAttributes("name","张三")。。。直接$name

追问

可是我想获取上个页面获取到的值,其实我写的程序就是类似于QQ空间,我在已经登陆的状态下,查出所有的用户,并把其中的一些加为自己的好友,我已经能获取好友的name,但是不能获取自己的name,查找好友的页面是在我已经登陆的状态下查询的。我要怎么获取呢?

如何获取handler里的session

在自定义类库CS文件里使用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例。一般情况下通过这种方式获取Session值不会有问题,不过应特别注意要使用session必须要page_load方法执行以建立了page对象以后才有session的使用目标,此时先检测Session是否为Null再调用值是不会提示错误的。如果直接在Page页面中定义一个全局变量取Session的值就会提示未设置实例的错误!使用Application,Cookie同理也需注意这个问题。在ASHX一般处理程序文件中如需调用Session必须继承System.Web.SessionState.IRequiresSessionState接口,才能实现Session读写!System.Web.SessionState的接口介绍:IReadOnlySessionState指定目标 HTTP处理程序只需要具有对会话状态值的读访问权限。这是一个标记接口,没有任何方法。IRequiresSessionState指定目标 HTTP处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session["Name"]的时候没有问题,但想将这个Session写到某个变量时,发现Session的值为NULL;MSDN中的解决方法为:“在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权”,在自定义的类上加上该接口后,Session值获取正常。例子:ashx文件要使用Session,必须实现Session接口;using System;using System.Web;using System.Web.SessionState; //第一步:导入此命名空间public class 类名 : IHttpHandler ,IRequiresSessionState //第二步:实现接口 到此就可以像平时一样用Session了 参考技术A 在自定义类库CS文件里使用
System.Web.HttpContext.Current.Session
获取Session时提示错误:
未将对象引用设置到对象的实例。
一般情况下通过这种方式获取Session值不会有问题,不过应特别注意要使用session必须要
page_load方法执行以建立了page对象以后
才有session的使用目标,此时先检测Session是否为Null再调用值是不会提示错误的。
如果直接在Page页面中定义一个
全局变量取Session的值就会提示未设置实例
的错误!使用Application,Cookie同理也需注意这个问题。在ASHX一般处理程序文件中如需调用Session必须继承
System.Web.SessionState.IRequiresSessionState
接口,才能实现Session读写!
System.Web.SessionState的接口介绍:
IReadOnlySessionState
指定目标 HTTP
处理程序只需要具有对会话状态值的读访问权限。这是一个标记接口,没有任何方法。
IRequiresSessionState
指定目标 HTTP
处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。
自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session["Name"]的时候没有问题,但想将这个Session写到某个变量时,发现Session的值为NULL;MSDN中的解决方法为:“在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权”,在自定义的类上加上该接口后,Session值获取正常。例子:
ashx文件要使用Session,必须实现Session接口;
using System;
using System.Web;
using System.Web.SessionState; //第一步:导入此命名空间
public class 类名 : IHttpHandler ,IRequiresSessionState //第二步:实现接口 到此就可以像平时一样用Session了

以上是关于前一个将jsp页面能用session获取值,再打开一个新的jsp页面用session怎么获取不到??的主要内容,如果未能解决你的问题,请参考以下文章

关于js在jsp页面中获取session的问题

jsp中怎样获取选择栏修改前和修改后的值

JSP使用sessionScope获取session值

JSP如何取出session里的值?

将一个JSP页面的若干个值传到另一个JSP页面上

php为啥session能在当前页面中输出值,在其他页面从session中取值的时候是NULL