Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系
2017-06-18 09:57
393 查看
课程目标:
① 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系
② 懂得怎样使用它们
概念介绍:
1. [共同点]不管对象的作用域怎样,共享变量和获得变量的 方法都是一致的
–setAttribute(“varName”,obj);
–getAttribute(“varName”)。
2. 变量的作用域
ServletContext–范围最大。应用程序级别的,整个应用程序都能訪问
HttpSession – 次之,会话级别的,在当前的浏览器中都能訪问[不论是在同一浏览器开多少窗体,都能够訪问]。可是换个浏览器就不行了。就必须又一次创建session
HttpServletRequest –范围最小,请求级别,请求结束,变量的作用域也结束[也就是仅仅是一次訪问,訪问结束,这个也结束]
3. 实例
插播广告:博客之星评选,点击投我一票,谢谢。
以上三个数据的设置:
结论:
HttpServletRequest 仅仅是浏览器的一次訪问,除非servlet做处理,比方
就会传递。
Session 用于同一浏览器,能够互相调用数据
ServletContext 整个应用程序都能够訪问
① 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系
② 懂得怎样使用它们
概念介绍:
1. [共同点]不管对象的作用域怎样,共享变量和获得变量的 方法都是一致的
–setAttribute(“varName”,obj);
–getAttribute(“varName”)。
2. 变量的作用域
ServletContext–范围最大。应用程序级别的,整个应用程序都能訪问
HttpSession – 次之,会话级别的,在当前的浏览器中都能訪问[不论是在同一浏览器开多少窗体,都能够訪问]。可是换个浏览器就不行了。就必须又一次创建session
HttpServletRequest –范围最小,请求级别,请求结束,变量的作用域也结束[也就是仅仅是一次訪问,訪问结束,这个也结束]
3. 实例
插播广告:博客之星评选,点击投我一票,谢谢。
以上三个数据的设置:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1 ServletContext sc = this.getServletContext(); sc.setAttribute("sc_name", "sc_value"); // 2 HttpSession session = request.getSession(); session.setAttribute("session_name", "session_value"); // 3 request.setAttribute("request_name", "request_value"); String sc_value = (String) sc.getAttribute("sc_name"); String session_value = (String) session.getAttribute("session_name"); String request_value = (String) request.getAttribute("request_name"); System.out.println(sc_value+":"+session_value+":"+request_value); // request.getRequestDispatcher("MyServlet2").forward(request, response); }Servlet2 的获取:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext sc = this.getServletContext(); HttpSession session = request.getSession(); String sc_value = (String) sc.getAttribute("sc_name"); String session_value = (String) session.getAttribute("session_name"); String request_value = (String) request.getAttribute("request_name"); System.out.println(sc_value+":"+session_value+":"+request_value); }
结论:
HttpServletRequest 仅仅是浏览器的一次訪问,除非servlet做处理,比方
request.getRequestDispatcher("MyServlet2").forward(request, response);
就会传递。
Session 用于同一浏览器,能够互相调用数据
ServletContext 整个应用程序都能够訪问
相关文章推荐
- Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系
- Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系
- httpServletRequest对象、filter、servlet、servlet容器、catalina、tomcat、以及web容器之间的关系
- Struts2 如何访问 HttpServletRequest、HttpSession、ServletContext 三个域对象 ?
- Action获取传统域对象(HttpServletRequest、HttpSession、ServletContext)的三种
- Servlet介绍(7)-----HttpServletRequest、HttpSession、ServletContext、RequestDispatcher
- 对Servlet及tomcat关系的理解,以及Action与servletAPI的关系,以及httpServletRequest
- 对Servlet及tomcat关系的理解,以及Action与servletAPI的关系,以及httpServletRequest
- 对Servlet及tomcat关系的理解,以及Action与servletAPI的关系,以及httpServletRequest
- 在Struts2访问 HttpServletRequest、HttpSession、ServletContext三个域对象
- struts2如何访问HttpServletRequest、HttpSession、ServletContext三个域对象?
- ServletContext、HttpServletRequest 、HttpServletResponse和HttpSession
- ThreadLocal实现HttpServletRequest、HttpSession信息在线程之间共享
- 在 Action 中访问 WEB 资源(struts2获取HttpServletRequest, HttpSession, ServletContext)
- dwr与HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig.
- ServletContext、HttpSession、HttpServletRequest三者域属性空间范围对比
- 对Servlet及tomcat关系的理解,以及Action与servletAPI的关系,以及httpServletRequest
- 对Servlet及tomcat关系的理解,以及Action与servletAPI的关系,以及httpServletRequest
- struts2如何访问HttpServletRequest、HttpSession和ServletContext三个域对象?
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期