0
点赞
收藏
分享

微信扫一扫

JavaWeb JSP中的四大域对象

十里一走马 2022-03-25 阅读 111

JSP中的四大域对象

request、session、application、pageContext是JSP页面中的四大域对象,也是JSP页面中的隐式对象。

    setAttribute()
    getAttribute()
  • request作用域:一次请求跨越的前后两个组件(servlet jsp),一次请求指的是从一个组件开始,到另一个组件结束。

  • session作用域:有效范围是当前会话,所谓当前会话,是指从用户打开浏览器开始,到用户关闭浏览器结束。

  • application作用域:有效范围是整个web应用,整个应用是指从应用启动到应用结束。

  • pageContext作用域:作用范围仅限于用户请求的当前页面

什么时候用什么作用域?

如果数据只在当前jsp页面中使用,用pageContext域;
如果数据需要在转发时资源共享,用request域;
如果数据我现在需要用,过一会我还需要用,用session域;
如果数据我现在需要用,过一会别人也需要用,用application域

<%@page pageEncoding="utf-8"%>
<html>
    <head>
         <title>使用pageContext隐式对象、四大域对象</title>
    </head>
  
    <body>
		<%
		     //往pageContext域对象中存数据
		     pageContext.setAttribute("a",1);
		     //依次往request session和application域对象中存数据
		     request.setAttribute("b",2);
		     session.setAttribute("c",3);
		     application.setAttribute("d",4);
		     //转发技术,由当前09转发到10.jsp页面
		     //request.getRequestDispatcher("MyJsp10.jsp").forward(request,response);
		%>
	

		<!-- 在当前页面获取域对象中的数据 -->
		a的值为:<%=pageContext.getAttribute("a") %> 
        b的值为:<%=request.getAttribute("b") %>
        c的值为:<%=session.getAttribute("c") %>
        d的值为:<%=application.getAttribute("d") %>
		<%
            //从pageContext中获取数据
            out.println("a="+pageContext.getAttribute("a"));
		    //从request、session和application中依次取出数据
		    out.println("b="+request.getAttribute("b"));
		    out.println("c="+session.getAttribute("c"));
		    out.println("d="+application.getAttribute("d"));
		%>

		<!-- 测试
		     1、只访问MyJsp09.jsp        
		        a=1   b=2   c=3   d=4
		     2、先访问MyJsp09.jsp,在访问MyJsp10.jsp   --没有转发的情况
		        a=null b=null c=3 d=4
		     3、转发,访问MyJsp09.jsp,MyJsp09.jsp转发到MyJsp10.jsp    --由转发的情况
		        a=null b=2 c=3 d=4
		     4、不转发,先访问MyJsp09.jsp,在访问MyJsp10.jsp
		        a=null b=null c=3 d=4
		                    然后关闭浏览器(结束会话),重新打开浏览器访问MyJsp10.jsp
		        a=null b=null c=null d=4    
		     5、不转发,先访问MyJsp09.jsp,在访问MyJsp10.jsp
		        a=null b=null c=3 d=4     
		                   然后重新打开一个新的浏览器(别人)直接访问MyJsp10.jsp  
		        a=null b=null c=null d=4   
		 -->

    </body>
</html>
举报

相关推荐

0 条评论