欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jsp servlet 中 session 以及 cookie 如何正确使用?

程序员文章站 2022-05-08 15:29:12
...
jsp  servlet  中  session   以及  cookie 如何正确使用呢?
上班都是ssh 这样的框架做项目。 感觉自己越来越不会了? 除了ssh 真的不会什么了。 集成各种框架, compass,连接池,poi,报表, freemaker或者volecity。
实现是无聊的狠。业余时间自己也从基础 想一想,学一学。

基础一直很弱的,本来不知道http协议的,后来慢慢学习,了解基础知识、

现在感觉  jsp,servlet  我都没掌握,也是了解一点点、感觉很悲剧。

jsp  servlet  项目,不用任何框架,除了   数据库驱动jar包。

那么session  最好在哪创建?
我认真思考了,并且写了点测试代码。
jsp 中  session =true /false
如果是true   这个  session的 创建 是tomcat 编译jsp为servlet  中创建的,也就是 request.getsession()了。 这个不是个人控制创建,而是tomcat 负责的。
如果是false 就没什么了。
当然:这是在  cookie 没有禁用的情况下。 随意,但是最好jsp  中session都是false(页面中如果想取值可以留着)

假如cookie 禁用,并且  jsp 中的 session  =true,那么  每次访问jsp  都会创建一个新、的session  这也是tomcat创建的。  因此我觉得,最好不要让tomcat 编译的时候创建session,自己在代码中负责创建, 关闭 jsp中的所有 session=false。

不知道我这样的理解是否正确。

如果 jsp 中  session  =fasle    那么jsp页面中  使用EL表达式 取session  中值是无效的, ${xxx.xxx}  ${sessionScope.xxx.xxx} .
但是使用request.getSession(true/false).getAtrrbute("xxx");可以取出值。

el表达式,在被编译之后为什么获取不到session呢?

这是  jsp 编译之后,el表达式的代码out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${sessionScope.employee.realname}", java.lang.String.class, (PageContext)_jspx_page_context, null, false));

out.write("<%=request.getSession(true/false).getAtrrbute("employee")%>");

感觉就是jsp中的这些代码 直接就输出了,没做什么事。request却可以得到session
el表达式 估计就是得不到吧。

谁能给点解释。或者 意见什么的也好啊。