JSP中四大域对象

理论

类名 域名 功能
ServletContext context域  在整个服务器上保存,所有用户都可使用。 重启服务器后无效JSP内置对象
HttpSession session域 再一次会话中有效。服务器跳转、客户端跳转都有效。 网页关闭重新打开无效
HttpServletRequet request域 只在一次请求中有效,服务器跳转之后有效。 客户端跳无效
PageContext page域 只在一个页面中保存属性。 跳转之后无效。

域对象的作用:保存数据,获取数据,共享数据.

可以往这4个属性范围对象内部放置东西,然后在别的地方取出来使用。使用的时候谁的范围小谁优先。

示例1:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
	<body>
	    <%
	        application.setAttribute("application","application");
	        session.setAttribute("session","session");
	        request.setAttribute("request","request");
	        pageContext.setAttribute("pageContext","pageContext");
	
	        System.out.println(application.getAttribute("application"));
	        System.out.println(session.getAttribute("session"));
	        System.out.println(request.getAttribute("request"));
	        System.out.println(pageContext.getAttribute("pageContext"));
	    %>
	</body>
</html>

示例2:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
	<head>
	    <title>login</title>
	</head>
	<body>
	    <%
	        System.out.println(application.getAttribute("application"));
	        System.out.println(session.getAttribute("session"));
	        System.out.println(request.getAttribute("request"));
	        System.out.println(pageContext.getAttribute("pageContext"));
	    %>
	</body>
</html>

示例3:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
	<body>
	    <%
	        application.setAttribute("k","application");
	        session.setAttribute("k","session");
	        request.setAttribute("k","request");
	        pageContext.setAttribute("k","pageContext");
	
	        System.out.println(application.getAttribute("k"));
	        System.out.println(session.getAttribute("k"));
	        System.out.println(request.getAttribute("k"));
	        System.out.println(pageContext.getAttribute("k"));
	    %>
	</body>
</html>

示例4:

  • Servlet代码:

    @WebServlet("/demo")
    public class DemoServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //this指当前类的对象
            //this.getServletContext这个方法的返回值对象就是application对象
            ServletContext application = this.getServletContext();
            application.setAttribute("k","application");
    
            //获取Session对象
            HttpSession session = request.getSession();
            session.setAttribute("k","session");
    
            request.setAttribute("k","request");
    
            request.getRequestDispatcher("demo.jsp").forward(request,response);
        }
    }
    
  • JSP页面代码

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    	<head>
    	    <title>Title</title>
    	</head>
    	<body>
    	fdsfdsfsd<br>
    	    <%
    	        out.println("application "+application.getAttribute("k"));
    	        out.println("session "+session.getAttribute("k"));
    	        out.println("request "+request.getAttribute("k"));
    	        out.println("pageContext "+pageContext.getAttribute("k"));
    	    %>
    	</body>
    </html>
    
发布了253 篇原创文章 · 获赞 666 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/lianghecai52171314/article/details/103436693