各位老师们好,我刚接触servlet,这里有一个问题要请教一下各位前辈。Servlet中:
HttpSession session = request.getSession(true);
ServletContext scx = session.getServletContext();
scx.setAttribute("session1","MYsession11");
和
HttpSession session = request.getSession(true);
session.setAttribute("session1","MYsession11");
问题1:
以上两种方式同样能设定session,那么第一种设定session的方法中为什么要用ServletContext对象来设定session啊?
问题2:
ServletContext具体含义是什么?谢谢给位前辈能在百忙之中回答我的问题,谢谢了。
HttpSession session = request.getSession(true);
ServletContext scx = session.getServletContext();
scx.setAttribute("session1","MYsession11");
和
HttpSession session = request.getSession(true);
session.setAttribute("session1","MYsession11");
问题1:
以上两种方式同样能设定session,那么第一种设定session的方法中为什么要用ServletContext对象来设定session啊?
问题2:
ServletContext具体含义是什么?谢谢给位前辈能在百忙之中回答我的问题,谢谢了。
解决方案 »
- linux下jfreechart不显示图片,方法写在action中,jsp调action
- 关于cas登录成功后跳转的问题
- jsp页面输出String字符串
- 服务器能否主动向web客户端发送信息!
- 关于dom4j解析xml的问题
- org.hibernate.SessionException: Session is closed!
- jrockit求助
- hql问题:我现在的功能是想查询指定日期3天内的信息hql语句怎么写(欢迎加入java技术群:10815536)
- 谁能帮我解决一个spring的事务问题,另开贴200分相送
- 请问怎么配置struts1.2.4呀?哪里有详细的文档?
- 求助,JBOSS虚拟机崩溃了
- 什么浏览器可以隔一段时间刷新,然后如果报400错误可以有个提醒?
session是全局变量
Servlet上下文
A.服务器启动时,为每个应用创建一个唯一的Servlet上下文对象,
该对象一直存在。除非服务器关闭或者停止该应用(即卸载)。
B.其作用是servlet可以通过该对象去调用容器的部分功能。
作用:
ServletContext.setAttribute(String,Object);
ServletContext.getAttribute(String)//找不到就返回null
ServletContext.removeAttribute(String);
ServletContext访问全局的配置参数。
ServletContext.getInitParameter(String);
C.如何获得ServletContext
GenericServlet.getServletContext();
session.getServletContext();
D.比较ServletContext,HttpSession,HttpSession的三个对象的生命周期。
jsp中的request 是被包装为servlet中的HttpServletRequest接口
response 则被包装为servlet中的httpServletResponse接口的实例
session对象则是接口httpSession的实例
application则是接口ServletContext的实例这些内置对象在jsp中可以直接使用.所以楼主的代码意思分别是在application和session中保存对象...至于application,session,request 这几个范围的区别 楼主可以上网搜索
ServletContext scx = session.getServletContext();这个就创建了一个像application一样的全局变量了,
scx.setAttribute("session1","MYsession11");就是将值加入到这个对象中,任何人都可以使用这个值了,而
HttpSession session = request.getSession(true);
session.setAttribute("session1","MYsession11");
这个”session1“就只能是当前会话的用户使用了,
写了这么多不知道你懂了没有,可能有些地方说得不准确,不过就是这个意思了,1楼的兄弟知道是和”范围“有关,不过没说清楚了