JavaWeb知识小汇(5)—— pageContext
发布日期:2021-05-07 08:58:32 浏览次数:17 分类:精选文章

本文共 1638 字,大约阅读时间需要 5 分钟。

pageContext

<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@page isELIgnored="false" %>    scope<%    pageContext.setAttribute("name1", "pageContext");//保存的数据只在一个人页面内有效    request.setAttribute("name2", "request");//保存的数据只在一次请求内有效,请求转发    session.setAttribute("name3", "session");//保存的数据只在一次会话内有效,即关闭浏览器结束一次会话    application.setAttribute("name4", "application");//保存的数据只在服务器内有效,关闭服务器失效%><%    //从pageContext取出,是通过寻找的方式    //作用域从底层到高层pageContext->request->session->application    String name1 = (String) pageContext.findAttribute("name1");    String name2 = (String) pageContext.findAttribute("name2");    String name3 = (String) pageContext.findAttribute("name3");    String name4 = (String) pageContext.findAttribute("name4");    String name5 = (String) pageContext.findAttribute("name5");//不存在%>

结果为

name1(el):${name1}

name2(el):${name2}

name3(el):${name3}

name4(el):${name4}

name5(el):${name5}

name5(java表达式输出):<%=name5%>

PageContext作用域从底层到高层pageContext->request->session->application,源码分析

public abstract class PageContext extends JspContext {       public static final int PAGE_SCOPE = 1;    public static final int REQUEST_SCOPE = 2;    public static final int SESSION_SCOPE = 3;    public static final int APPLICATION_SCOPE = 4;    ...}//因此,此代码含义一样pageContext.setAttribute("i", "o", PageContext.SESSION_SCOPE);session.setAttribute("i", "o");
//都是请求转发的效果pageContext.forward("scope1.jsp");request.getRequestDispatcher("scope1.jsp").forward(request, response);

request:客户端向服务的发送请求,产生的数据,用户用于用完就没有用了,比如:新闻

session:客户端向服务的发送请求,产生的数据,用户用于用完一会还要用,比如:购物车

application:客户端向服务的发送请求,产生的数据,一个用户用于用完,其他用户还可能用,比如:聊天数据

上一篇:经常用到的一些基本样式
下一篇:vue:项目开发的记录与优化

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年03月28日 22时30分15秒