当前位置: 代码迷 >> Java Web开发 >> HttpSession session = request.getSession();疑点
  详细解决方案

HttpSession session = request.getSession();疑点

热度:761   发布时间:2016-04-12 23:16:33.0
HttpSession session = request.getSession();疑问
1.javax.servlet.http 
Interface HttpSession,HttpSession是接口,HttpSession  session = request.getSession();这样写,session返回的是什么类型的对象的实例?接口 变量= 某种方法。这个跟String var= some.getString();这样的结构是否是一致的,能否有大侠给介绍一下基础知识,我比较薄弱。

2.request作为jsp的内置对象。如果要是用JAVA写包进行封装显然是不行的。那么在java中要是进行session操作的话,是否需要写成 某个接口 request= 某种方法调用。到现在我查找不出能够实例化request的类,但是发现了一个接口。能否把这个也讲详细一些。从java到JSP的困惑。 

 

------解决方案--------------------
返回的是httpSession 类型的,从后台servlet到jsp的时候把数据放到session里给传到jsp页面。
------解决方案--------------------
接口 变量=某种方法 最终是接口 变量=某种方法返回的变量 不就是变量=变量
------解决方案--------------------
1.javax.servlet.http 
Interface HttpSession,HttpSession是接口,HttpSession  session = request.getSession();这样写,session返回的是什么类型的对象的实例?接口 变量= 某种方法。这个跟String var= some.getString();这样的结构是否是一致的,能否有大侠给介绍一下基础知识,我比较薄弱。

request.getSession();返回一个实现了HttpSession接口的实例,这个实例是由容器实现的,不同的容器实现的方式也不一样

2.request作为jsp的内置对象。如果要是用JAVA写包进行封装显然是不行的。那么在java中要是进行session操作的话,是否需要写成 某个接口 request= 某种方法调用。到现在我查找不出能够实例化request的类,但是发现了一个接口。能否把这个也讲详细一些。从java到JSP的困惑。

session是jsp的内置对象,直接用即可,在servlet中可以用request.getSession()方法得到,不需要自己创建实例,web容器已经提供了。
------解决方案--------------------
在java中自己实现HttpSession的实例,这个难度比较大,不明白为什么要这么写呢?
------解决方案--------------------
servlet 不是一个java文件吗?

------解决方案--------------------
引用:
servlet 不是一个java文件吗?


我怀疑楼主是在写servlet
------解决方案--------------------
你可以打开jsp编译后的java文件,我觉得会解决你的问题
------解决方案--------------------
这个不用想就是个Servlet啊...那个getSession()返回的是你原来存在的是什么类型的值,返回的就是类型的值!如:DangDangUser users= (DangDangUser) request.getSession().getAttribute(
"DANGDANGUSER");
------解决方案--------------------
我不太想回答楼主的问题,不过给几个知识点用于参考:
1、楼主需要把引用类型与对象实际类型分开,这是学习面向对象一个很重要的步骤,当然你也要想清楚这个步骤,如果你希望获得这个类型的实际类型,你可以使用对象的getClass.getName()方法来获得类型的全限定名,这个是对象的实际类型,此处并不是2楼所说的HttpSession类型,那玩意也是个接口。
2、jsp只是个页面,他会被容器动态解析兵编译成一个servlet,而你所谓的内置request等对象都是在这个servlet类,在tomcat下,你可以去work目录下找到编译后的这个jsp对应的servlet,名字差不多,只不过以.java和.class结尾,你尝试清空work目录,尝试写一个jsp,访问后去查看新生成的work目录,如果有兴趣可以自己研究一下。
------解决方案--------------------
虽然我不太明白你想要做什么,因为我没看懂- -
不过我想你可能要学习一些更多的东西来加深你对java web的理解,request对象与response对象不过是封装了请求,具体怎么封装的,这根web程序员无关,而且不同的容器实现的方式也不同,tomcat weblogic websphere 等等,所以不要妄图去在里面加些什么,不可靠的,它们只是按照java web的规范实现了,但是怎么实现的,不可确定。
如果你想加一些自己特有的功能到这些api包里面,不建议这么做,这样你的应用就缺乏安全性、稳定性和可迁移性。当然,如果是你自己包装的jar包无所谓。
最后,理解一个东西,最好不要从代码层次来理解,因为代码只是实现,不要本末倒置,大体上是现有概念再实现代码的,因此,你应该先去学习java web工作流程以及规范文档,然后通过一定的代码来巩固学习的知识,不要妄图通过代码来学习框架,初学者都爱犯这种毛病。通过代码来学习框架,你一辈子也学不会的。
  相关解决方案