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

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

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

要使用

responsesendRedirect(URL)

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

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

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

这有可能是因为ajax请求的时候没有把session的id带回去,造成了session丢失

造成这种情况的原因可能是:

1浏览器不支持cookie

2ajax发送的时候信息不完全

你可以尝试

在ajax请求的时候把session的id带回去

获取后台session的id,可以在js用documentcookie获取,至于session的键值,则可以用浏览器的控制台抓包获取(例如,php的session的cookie默认值为PHPSESSIN)

不考虑框架下,在JAVA中使用session

大概有以下几种使用方法:

1、前台设置:利用jsp的内置对象session进行设置。

<%

sessionsetAttribute("username", username);

%>

2、后台设置:

(1)Filter设置:

public class MyFilter implements Filter {

@Override

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException {

//把请求和响应对象强制转换为>

扩展资料:

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session

对象存储特定用户会话所需的属性及配置信息。

这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session

对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web

服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

Session

对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。

有关使用

Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。注意 会话状态仅在支持 cookie 的浏览器中保留。

session的工作原理:

1、当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

2、首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。

3、当执行PHP脚本时,通过使用session_register()函数注册session变量。

4、当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过phpini文件中的sessionsave_path指定,下次浏览网页时可以加载使用。

参考资料:

百度百科 ------ session

session如果你没存东西在里面,会一直是空的,你第一次进去肯定是空的,但是你在第一次进去的时候存了东西,所以第二次进去才能看到从session中取出的值,如果是request的话,第一次就会取到值

楼上答案很对,补充一下:

如果你使用了 Struts2 框架,初学者很容易弄混,Struts2包装后的 session 和 JSP/Servlet 原生的 session。

教科书里都写到:JSP内置的9个对象中有个 session 对象,该对象就是 JSP/Servlet 的内置类 >

>

>

sessiongetAttribute(xxx, "xxx"); 有点类似 Map 但是使用的 是该对象的特殊方法 setAttribute()

Strut2框架中的核心对象 ActionContext 是所有Action的上下文,为了方便 Struts库把常用的JSP对象也都包装成了ActionContext的属性(可以简单这么理解)。ActionContext有个属性就是 session,然后暴露出来的方法就是 getSession(),这个session属性的类型是个Map,所以它使用时一般就是

Map session = ActionContextgetContext()getSession();返回一个 Map类型变量。

sessionget(xxx,"xxx"); 就是Map的put, get 方法。

可以看到 二者 区别很大。第一个是 >

Struts2 这些框架都是可有可无的。没有Struts2框架,JSP/Servlet里面也是有 session对象的,毕竟session是JSP/Servlet内置的 9 个对象中的一个嘛。

反正自己要看清楚,自己使用的哪个 session, 是内置的 >

以上就是关于前一个将jsp页面能用session获取值,再打开一个新的jsp页面用session怎么获取不到全部的内容,包括:前一个将jsp页面能用session获取值,再打开一个新的jsp页面用session怎么获取不到、ajax servlet中的session问题、JAVA中怎么使用session等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9550056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存