JSP其余内置对象及四大范围对象的使用
一、application
String getContextPath():获取虚拟路径
String getRealPath():获取虚拟路径对应的绝对路径
实例
application.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%="当前目录的虚拟路径:"+application.getContextPath()+"<br/>" %>
<%="当前虚拟路径"+application.getContextPath()+"对应的绝对路径:"+"<br/>"+application.getRealPath(application.getContextPath()) %>
</body>
</html>
下面是测试截图

/Myjsp为默认的路径,可以自己修改

进行添加虚拟路径即可

二、四大范围对象
pageContext:JSP页面容器(page对象) ,当前页面有效(跳转页面无效)
request:请求对象,同一次请求有效(请求转发有效,重定向无效)
session:会话对象,同一次会话有效(换浏览器无效)
application:全局对象,全局有效(整个项目运行期间有效,切换浏览器依然有效,重启Tomcat就无效)
以上四个对象共有的方法
Object getAttribute(String name):根据属性名,或者属性值。
void setAttribute(String name,Object obj):设置属性值(新增,修改)。
//如果name对象之前不存在,则创建一个name对象,并将obj的值赋给name。
//如果name对象之前存在,则将name的值改为obj。
void removeAttribute(String name):根据属性名,删除对象
1、pageContext实例
pageContext.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//创建name对象
pageContext.setAttribute("name", "zzw");
//在控制台打印name的值
System.out.println(pageContext.getAttribute("name"));
request.getRequestDispatcher("pc1.jsp").forward(request, response);
%>
</body>
</html>
pc1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//在控制台打印页面跳转后的name值
System.out.println(pageContext.getAttribute("name"));
%>
</body>
</html>

在跳转后name值为null,说明pageContext旨在当前页面有效
2、request实例
request.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//创建name对象
request.setAttribute("name", "zzw");
//在控制台打印name的值
System.out.println(request.getAttribute("name"));
//请求转发语句
//request.getRequestDispatcher("rq1.jsp").forward(request, response);
//重定向语句
response.sendRedirect("rq1.jsp");
%>
</body>
</html>
rq1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//在控制台打印页面跳转后的name值
System.out.println(request.getAttribute("name"));
%>
</body>
</html>
使用请求转发语句进行页面跳转

使用重定向进行页面跳转

通过上述测试可以得出结果,同一次请求有效(请求转发有效,重定向无效)
3、session实例
session.jsp
ss1.jsp


在同一浏览器的不同页面打开都有效

换用Chrome后,name值为null,说明失效
session在同一次会话中有效。
4、application实例
application.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//创建name对象
application.setAttribute("name", "zzw");
//在浏览器打印name的值
out.print(application.getAttribute("name"));
//请求转发语句
//request.getRequestDispatcher("al1.jsp").forward(request, response);
//重定向语句
response.sendRedirect("al1.jsp");
%>
</body>
</html>
al1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
al1.jsp<br/>
<%
//在浏览器打印页面跳转后的name值
out.print(application.getAttribute("name"));
%>
</body>
</html>

在Firefox有效

换用Chrome依然有效,说明application是全局有效。(整个项目运行期间有效,切换浏览器依然有效)

重启Tomcat就无效。
以上的四个对象
1、通过setAttribute()来保存,通过getAttribute()获得
2、上述范围对象,尽量使用最小的范围 ,因为对象的范围越大,造成的损耗越大
三、其余jsp内置对象
1、config:配置对象(服务器配置信息)
2、 pageContext:JSP页面容器
3、page:当前JSP页面对象(相当于java中的this)
4 、exception:异常对象
JSP其余内置对象及四大范围对象的使用的更多相关文章
- JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列
目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...
- JSP的内置对象以及作用域。
最近在面试,一些基础的问题总是会被问到,虽然是基础,但是有些东西在工作中用的少,所以就有些记不清了,在面试的时候更因为紧张很容易造成原先知道的知识也会突然忘了的情况发生.所以在重新组织一下jsp的内置 ...
- JSP的内置对象(上)
1.JSP内置对象的概念:JSP的内置对象时Web容器所创建的一组对象,不使用new关键字就可以使用的内置对象 2.JSP九大内置对象内置对象:out ,request ,response ,sess ...
- JSP&EL 内置对象
JSP&EL 内置对象 转载▼ 具体的JSP和El中的内置对象见下表,由于我写在了excel中,也不知道怎么把excel发出来,就截了图. 相关问题: Q1: JSP:EL中 pageCo ...
- struts访问jsp api内置对象的集中方式
1 default-action-ref元素改元素用来配置默认的action,如果struts找不到对应的action,就会调用这个默认的action 2 dmi处理方式是通过请求action中的一个 ...
- 什么是jsp?jsp的内置对象有哪些?
这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [什么是jsp? ...
- python 迭代器(一):迭代器基础(一) 语言内部使用 iter(...) 内置函数处理可迭代对象的方式
简介 在 Python 中,所有集合都可以迭代.在 Python 语言内部,迭代器用于支持: 1.for 循环2.构建和扩展集合类型3.逐行遍历文本文件4.列表推导.字典推导和集合推导5.元组拆包6. ...
- servlet的三大作用域对象和jsp的九大内置对象及其四大作用域对象
servlet的三大作用域对象: request(HttpServletRequest) session(HttpSession): application(ServletContext):tomca ...
- 菜鸟日记之JSP二 内置对象的理解
·最近学习JSP了,对编程和网络又有了一些理解.无论是现实中人与人的交流,还是网络世界的接触,都是在相互表达自己的意思让别人知道,并理解对方的信息.然后我们知道的事情不断的变多,会又交杂出新的内容,不 ...
随机推荐
- Celery异步处理
1.Celery概述 1.1问题抛出 我们在做网站后端程序开发时,会碰到这样的需求:用户需要在我们的网站填写注册信息,我们发给用户一封注册激活邮件到用户邮箱,如果由于各种原因,这封邮件发送所需时间较长 ...
- 对于n!的快速质因数分解
N!的阶乘的质因数分解 对于N的阶乘 比如8! 我们要算其中一个质因数出现次数 我们注意到 8!=1 2 3 4 5 6 7 8 1 1 1 1 2的倍数出现的次数8/2=4 1 1 4的倍数出现的次 ...
- 2018CCPC吉林赛区(重现赛)部分题解
The Fool 题目链接 Problem Description The Fool is numbered 0 – the number of unlimited potential –and th ...
- JDK源码之Double类&Float类分析
一 概述 Double 类是基本类型double的包装类,fainl修饰,在对象中包装了一个基本类型double的值.Double继承了Number抽象类,具有了转化为基本double类型的功能. 此 ...
- mybatis入门案例分析
mybatis入门案例分析 一.设计模式分析 public class MybatisTest { public static void main(String[] args) throws Exce ...
- Java 程序是如何执行的
Java 程序是如何执行的 了解任何一门语言的精髓都是先俯览其全貌,从宏观的视角把握全局,然后再深入每个知识点逐个击破,这样就可以深入而快速的掌握一项技能.同样学习 Java 也是如此,本节就让我们先 ...
- python中map()和dict()的用法
map()用法 map()是python的内置函数,会根据提供的函数对指定序列做映射. 语法: map(func, iter, ...) 其中func为一个功能函数,iter表示可迭代参数序列.map ...
- kvm实现快速增量盘模式的克隆脚本
转自:http://zxlwz.blog.51cto.com/6952946/1852424 要求:备份的img磁盘格式只有qcow2格式支持增量盘使用和快照功能当你的一个虚拟机格式是raw格式时,请 ...
- Open Images V4 下载自己需要的类别
OpenImages V4数据集描述1)这个v4数据集主要有两种用途:对象检测及分类,意思是说可以用这个数据集训练出对象检测模型,用于识别图像中的对象类别及位置边框.视觉关系检测,比如你用这个v4数据 ...
- HDU 2087 剪花布条 KMP极其初级之入门题(KMP模板在这里)
Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input ...