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中取出的值,如果是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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)