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:异常对象

原文地址:https://www.cnblogs.com/yeyueweiliang/p/12199238.html

时间: 2024-08-06 22:33:49

JSP其余内置对象及四大范围对象的使用的相关文章

JSP 的内置对象及方法,动作和作用,常用指令

JSP 的内置对象及方法:JSP 共有以下9 种基本内置组件:request:用户端请求,此请求会包含来自GET/POST 请求的参数:response:网页传回用户端的回应:pageContext:网页的属性是在这里管理:session:与请求有关的会话期,可以存贮用户的状态信息:application:servlet 正在执行的内容:out:用来传送回应的输出:config:servlet 的构架部件,用于存取servlet 实例的初始化参数:page:JSP 网页本身:exception:

day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中有三大指令:page.include.taglib,最为常用,也最为复杂的就是page指令了. 2 page指令 page指令是最为常用的指定,也是属性最多的属性! page指令没有必须属性,都是可选属性.例如<%@page %>,没有给出任何属性也是可以的!

JSP的内置对象以及作用域。

最近在面试,一些基础的问题总是会被问到,虽然是基础,但是有些东西在工作中用的少,所以就有些记不清了,在面试的时候更因为紧张很容易造成原先知道的知识也会突然忘了的情况发生.所以在重新组织一下jsp的内置对象以及作用域. 先给大家说一个记住JSP九个内置对象的记忆方法,记九个单次虽然不好记,而且还容易遗漏,所以把这九个单次总结到一起就成了一个单词:parscope(气象雷达)示波器. page里的变量没法从index.jsp传递到test.jsp.只要页面跳转了,它们就不见了. request里的变

JSP&amp;EL 内置对象

JSP&EL 内置对象 转载▼ 具体的JSP和El中的内置对象见下表,由于我写在了excel中,也不知道怎么把excel发出来,就截了图. 相关问题: Q1: JSP:EL中 pageContext.request 和 requestScope 的区别? A: pageContext.request是一个具体的对象,在你的http请求过程中存在.requestScope是一个Map,这个Map中存放了在request作用域中的属性键值对,就这么简单而已,它不是request对象,而是reques

jsp的内置对象

JSP内置对象(9个常用的内置对象) 1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求, 然后做出响应.它是HttpServletRequest类的实例. 序号方法说明 objectgetAttribute(Stringname) 返回指定属性的属性值 EnumerationgetAttributeNames() 返回所有可用属性名的枚举 StringgetCharacterEncoding() 返回字符编码方式 intgetContentLeng

菜鸟日记之JSP二 内置对象的理解

·最近学习JSP了,对编程和网络又有了一些理解.无论是现实中人与人的交流,还是网络世界的接触,都是在相互表达自己的意思让别人知道,并理解对方的信息.然后我们知道的事情不断的变多,会又交杂出新的内容,不断地碰撞,最后形成世界的百态人生.现实如此,网络亦然. 网络上最普遍的是信息, 最珍贵的也是信息. (引用网上,自己的理解) 1.request对象 request 对象是 javax.servlet.httpServletRequest类型的对象. 该对象代表了客户端的请求信息,主要用于接受通过H

jsp常用内置对象---response

一.response内置对象介绍 response对象与request对象对应,它用于响应客户端请并向客户端输出信息.并且,在JSP页面中,response就是HttpServletResponse类的一个对象,可以直接使用response在JSP页面中调用HttpServletResponse类的所有方法.response最常用sentRedirect(String locationURL)方法执行页面跳转. 二.response对象常用方法 setContentLength(int len)

JSP的内置对象有哪些?

一共有九个内置对象: 1. pageContext :pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out.request.reponse.session.application 等对象.pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象. 2. request : request 对象是 javax.servlet.httpServletRequest类型的对象. 该对象代表了客户端的请求信息

JSP的 内置九大对象

我们以前用到的对象都是用 new 调用构造方法获得的,而在 JSP 中提供了 9 个不需要 new 实例化的对象,我们把它叫做内置对象或者隐藏对象,它们分别是 pageContext.request.response.session.application.config.out.page.exception. 1. request 内置对象 zaiWeb开发中, request 内置对象十分重要,用到的频率很多. request 对象的作用:接收客户端发送来的信息. 它的方法主要有: 2. re