Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JSP---JSP中4个容器-pageContext使用

JSP---JSP中4个容器-pageContext使用

作者头像
谙忆
发布于 2021-01-21 03:52:05
发布于 2021-01-21 03:52:05
2.4K00
代码可运行
举报
文章被收录于专栏:程序编程之旅程序编程之旅
运行总次数:0
代码可运行

这里重点只讲pageContext容器的用法哦。 因为另外的3个容器(request,session,application)在前面的servlet中已经演示过很多遍了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  容器                 作用域
pageContex         仅仅是当前页面,无法传参
request            当前页面,可以传参
session            同一个JSESSIONID共用一个
application       只要服务器还没重新启动,就一直存在

详细介绍:

pageContext – 它的作用范围仅为当前JSP页面。

request – 对于用户的一次请求有效,请求/响应结束即消失。 更多细节: 一个请求通过Servlet访问资源,在Servlet中将数据封装到request中,这在单位中是通常的做法。必须记住、必须记住、必须记住。 然后将请求转发到JSP页面,在从JSP页面上将封装到request中的信息取出。MVC 注意我上面说的是转发,而不是重定向。 对于用户的一次请求,并且请求完成后,数据将不再使用可使用request进行封装,以节省内存。

session – 对于用户的一次会话有效,通常我们用此域来封装用户登录的信息。也必须记住。

application – 在整个Web项目的生命周期内有效,不建议使用或谨慎使用。实际项目中根本不用。 开发原则 – 能用小的域尽量使用小的域。

setAttribute()和getAttribute:

第一种:

index.jsP;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>

  <body>
    <h2>演示一下JSP中的4个容器---重点是pageContext,因为之前3个在servlet中学了</h2>
    <%
        //从小到大的4个容器
        pageContext.setAttribute("name", "page-jack");
        request.setAttribute("name", "request-jack");
        session.setAttribute("name", "session-jack");
        application.setAttribute("name", "application-jack");
    %>

    OKOK-------<br/>

    <%
        //读取4个容器中的name属性值
        out.println(pageContext.getAttribute("name"));
        out.println("<br/>");
        out.println(request.getAttribute("name"));
        out.println("<br/>");
        out.println(session.getAttribute("name"));
        out.println("<br/>");
        out.println(application.getAttribute("name"));
    %>

  </body>
</html>

演示结果:

演示用pageContext设置4个容器的属性:

index.jsp:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%
        //从小到大的4个容器
        //这一段的功能等价于那4个容器设置属性,这里全部通过pageContext.setAttribute()实现
        pageContext.setAttribute("name", "PAGE-Jack",PageContext.PAGE_SCOPE);
        pageContext.setAttribute("name", "REQUEST-Jack",PageContext.REQUEST_SCOPE);
        pageContext.setAttribute("name", "SESSION-Jack",PageContext.SESSION_SCOPE);
        pageContext.setAttribute("name", "APPLICATION-Jack",PageContext.APPLICATION_SCOPE);
    %>
    <br/>
    <%
    //这一段的功能等价于之前用4个容器分别读取属性值,这里全部通过pageContext.getAttribute()实现
        out.println( pageContext.getAttribute("name", PageContext.PAGE_SCOPE) );
        out.println("<br/>");
        out.println( pageContext.getAttribute("name", PageContext.REQUEST_SCOPE) );
        out.println("<br/>");
        out.println( pageContext.getAttribute("name", PageContext.SESSION_SCOPE) );
        out.println("<br/>");
        out.println( pageContext.getAttribute("name", PageContext.APPLICATION_SCOPE) );
    %>

演示结果:

演示pageContext.findAttribute():

pageContext.findAttribute()方法会依次从pageContext、request、session和application中(页面、请求、会话、app)查找对应的属性,找到一个,后面的就不会再去找了。如果没有就返回null.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <%
        out.println( pageContext.findAttribute("name") );
    %>

演示结果:

顺便提一下ContentType与pageEncoding的区别:

pageEncoding是jsp文件本身的编码 ,把jsp文件编译成java的时候给编译器用的 。 contentType的charset是指服务器发送给客户端时的内容编码 ,是浏览器解析网页的时候用的 如果两个任意设置了其中一个,另一个即会与此保持一致。但,contentType除可以设置charset外,还可以设置MIME类型,如text/html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/07/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaWeb学习总结——JSP中的九个内置对象
时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。
用户6182664
2019/10/22
9840
JSP基础--九大内置对象
Object findAttribute(String name):依次在page、request、session、application范围查找名称为name的数据,如果找到就停止查找。这说明在这个范围内有相同名称的数据,那么page范围的优先级最高!
eadela
2019/09/29
5130
jsp开发技术
一、为什么说JSP也是动态web开发的一项技术呢?这是因为写JSP虽然像是在写HTML,但是JSP允许在页面中嵌套Java代码,或者利用某个标签表示Java代码(EL与jstl)。这就使得我们在写JSP时能够获取请求对象Request和响应对象Response等这样的web开发常用对象,实现与浏览器的交互。
全栈程序员站长
2022/09/06
9230
jsp开发技术
JSP的9大内置对象和4大域对象
在JSP开发中,会频繁使用到一些对象。例如HttpSession, ServletContext, ServletContext, HttpServletRequet。如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计JSP时,在JSP页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可,这些创建好的对象就叫内置对象! 举例:
望天
2018/08/02
7950
JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
什么是JSP内置对象 JSP引擎在调用JSP对应的jspServlet时,会传递或创建9个与web开发相关的对象供jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用 细心的朋友会发现,我们没有在JSP页面上定义过out对象,却可以直接使用!其实out对象就是JSP内置对象之一。 九个内置对象: pageContext page config request respo
Java3y
2018/03/15
9440
JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
JavaWeb后端入门9—JSP、MVC
作用:代码复现,可以单独写header.jsp、footer.jsp,写其他页面时直接引入
用户6948990
2025/04/03
1010
JavaWeb后端入门9—JSP、MVC
JSP面试题都在这里
下面是我整理下来的JSP知识点: 图上的知识点都可以在我其他的文章内找到相应内容。 JSP常见面试题 jsp静态包含和动态包含的区别 jsp静态包含和动态包含的区别 在讲解request对象的时候,我
Java3y
2018/03/15
1.4K0
JSP面试题都在这里
javaWeb核心技术第九篇之JSP
JSP:全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术.在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态 内容的显示.JSP文件的扩展名为.JSP; JSP技术所开发的Web应用程序是基于Java的,它可以用一种简捷而快速的方法从Java程序生成Web页面,使用上具有如下特征: 1:跨平台:由于JSP是基于Java语音的,它可以使用JavaAPI,所有它也是跨平台的,可以应用
海仔
2019/08/26
7010
Java EE基础之JSP(三)
Single
2018/01/04
1.2K0
Java EE基础之JSP(三)
动态资源技术JSP|Java与Html的美好相遇
JSP可以用简单易懂的方式表示为:Html+Java=JSP,JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
浅羽技术
2020/12/07
2.3K0
动态资源技术JSP|Java与Html的美好相遇
JSP九大内置对象
l out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
星哥玩云
2022/09/14
5870
Web-第十一天 JSP学习
JSP全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。为了与传统HTML有所区别,JSP文件的扩展名为.jsp。
Java帮帮
2018/07/27
8950
Web-第十一天 JSP学习
JSP与EL表达式重点学习笔记(1)
Jsp&el表达式 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的。 JSP中有三大指
Java帮帮
2018/03/19
9860
JSP与EL表达式重点学习笔记(1)
day11_JSP+EL+JSTL学习笔记
    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
黑泽君
2018/10/11
1.5K0
day11_JSP+EL+JSTL学习笔记
jsp、servlet笔记
1、init    初始化Jsp&Servlet方法    destroy 销毁Jsp&Servlet之前的方法    service 对用户请求生成响应的方法 2、Jsp文件必须在jsp服务器内运行
用户1141560
2017/12/26
9930
第75节:Java中的JSP,EL和JSTL
请求转发请求1次,只能对当前项目跳转,重定向请求2次.重定向是无法传递的,重定向对跳转范围没有限制.
达达前端
2019/07/03
1.4K0
第75节:Java中的JSP,EL和JSTL
JSP 学习笔记
JSP 全名为Java Server Pages,中文名叫java 服务器页面,它是在传统的 HTML 页面中插入 JAVA 代码片段和 JSP 标签形成的文件。 上一篇 Servlet 中只是讲解了我们开发中为什么继承 HttpServlet,而不是 Servlet 和 GenericServlet。并且只是对 ServletConfig、ServletContext、ServletResponse、ServletRequest 四个对象所拥有的方法简单的进行了介绍,这篇文章将会接着上一篇文章进行更加详细
bgZyy
2018/05/16
9780
Jsp内置对象及EL表达式的使用
一、JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称   对应的类型 request          HttpServletRequest response          HttpServletResponse session          HttpSession(有开关的:page指令的session属性的取值) application         ServletContext config            ServletConfig page     
欠扁的小篮子
2018/04/11
9620
Jsp技术介绍
前言 虽然在前后端分离的大潮流中,jsp技术已经是很少被使用了,其中一个重要的原因是jsp展示页面的时候过慢。但是,作为sun官方推出的技术,其中的思想和今天的前端技术十分的相似,很多前端框架都是基于这些思想的。所以,学习一下jsp还是十分有必要的。 Jsp的原理 简单来讲,使用jsp技术,可以将java的代码使用<%%>标签嵌入到html页面当中。 但是,为什么可以这样用呢? 比如说,现在有个页面叫做a.jsp。当你访问它的时候,服务器就会作出相应的响应,将jsp页面编译成Servlet实例,你不
roobtyan
2018/06/04
1.5K0
深圳Java培训:Java零基础学习之掌握JSP技术--【千锋】
JavaServerPages简称jsp,从“server”这个词可以看出,这其实也是一门java服务端技术,其实可以简单的把jsp认为是servlet,一点错也没有。Jsp的实质,就是客户端需要的资源是通过jsp技术动态生成的。
深圳java培训技术
2019/06/20
6200
深圳Java培训:Java零基础学习之掌握JSP技术--【千锋】
相关推荐
JavaWeb学习总结——JSP中的九个内置对象
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验