servlet实操之jsp内置对象以及作用域

jsp内置对象以及作用域

作用域:

pageContext.setAttribute(“name1”,”小明1号”); //保存的数据只在一个页面中有效

request.setAttribute(“name2”,”小明2号”); //保存的数据只在一次请求中有效,请求转发会携带这个数据

session.setAttribute(“name3”,”小明3号”); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器

application.setAttribute(“name4”,”小明4号”); //保存的数据只在服务器中有效,从打开服务器到关闭服务器

场景:

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

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

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

Session可以用来存一个人访问网站的数据,在这个网站访问期间,每个页面都生效。
application(ServletContext)可以用来存多个用户共享的数据。

练习:

<%
    pageContext.setAttribute("name1","1");//同一页面
    request.setAttribute("name2","2");//同一请求
    session.setAttribute("name3","3");//同一会话
    application.setAttribute("name4","4");//同一服务
%>
<%--fiddattribut会不断扩大徐寻找范围  page>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("name6");
%>

<h1>取出的值为:</h1>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
<h3>${name5}</h3>
<%--这不是一个请求 不能取出name2--%>
<input type="button" onclick="window.location.href='/jsp/forward/jsp2.jsp';" value="跳转" />
<%--请求转发是同一请求 可以取出name2--%>
<jsp:forward page="forward/jsp1.jsp" />
<%
    pageContext.forward("/jsp/forward/jsp2.jsp");
%>
posted @   Takiyo  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示