前言

之前我们已经学习了JSP的基础了,今天我们继续来学习JSP九大内置对象,这也是JSP的重点部分,同时也是面试的重点,大家在看完之后一定要自己动手练习。同时JSP基础不知道的可以去看往期内容在回来继续。

传送门:【JSP入门】只知道HTML却不知道JSP?

接下来正式来学习JSP九大内置对象吧!

目录

  • 前言
  • 初识内置对象
  • 深析九大内置对象
  • JSP案例演示
  • 获取其他内置对象
  • 结语

初识内置对象

所谓内置对象就是在JSP中无需创建就可以直接使用的九个对象

这九大内置对象分别是:

(1)out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
(2)config(ServletConfig):对应“真身”中的ServletConfig;
(3)page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;
(4)pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;
(5)exception(Throwable):只有在错误页面中可以使用这个对象;
(6)request(HttpServletRequest):即HttpServletRequest类的对象;
(7)response(HttpServletResponse):即HttpServletResponse类的对象;
(8)application(ServletContext):即ServletContext类的对象;
(9)session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@pagesession=”false”%>,说明这个页面不能使用session。

虽然内置对象是重点,但是不是所有的内置对象都很常用。

基本不会使用的内置对象:configpageexception

有两个对象不是每个JSP页面都可以使用的:exceptionsession

深析九大内置对象

1、request对象

request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

2、response对象

response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

3、session对象

session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 "Key/value"。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

4、application对象

application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。

5、out 对象

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

6、pageContext 对象

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用pageContext对象。

7、config 对象

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

8、page 对象

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

9、exception 对象

exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。

在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

JSP九大内置对象分为四类:

(1)输入输出对象:out对象、response对象、request对象
(2)通信控制对象:pageContext对象、session对象、application对象
(3)Servlet对象: page对象、config对象
(4)错误处理对象:exception对象

JSP案例演示

老规矩我们写一个简单的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><%String url = request.getRequestURL().toString();//HttpServletRequest对象response.getWriter().println(url);//HttpServletResponse对象%><%out.println("<br>ABCCC");//等同于response.getWriter()session.setAttribute("user", "张三");//HttpSession类的对象out.println((String)session.getAttribute("user"));%><%String cp = application.getInitParameter("copyright");//ServletContextout.println("<hr/>");out.println(cp);%><%//通过使用pageContext获取其他对象pageContext.getRequest();pageContext.getResponse();pageContext.getSession();pageContext.getServletContext();%>
</body>
</html>

输出页面:

根据输出的页面钻研一下对应关系。

JSP四大域:

Servlet中有三大域,而JSP中有四大域:

ServletContext:整个应用程序。
session:整个会话(一个会话中只有一个用户)。
request:一个请求链。
pageContext:一个jsp页面,这个域是在当前jsp页面和当前jsp页面中使用的标签之间共享数据。

其有效期分别为:

(1)application(ServletContext):在整个服务器上保存,所有用户都可使用。 重启服务器后无效。
(2)session:再一次会话中有效。服务器跳转、客户端跳转都有效。 网页关闭重新打开无效。
(3)request:只在一次请求中有效,服务器跳转之后有效。 客户端跳无效。
(4)page(pageContext):只在一个页面中保存属性。 跳转之后无效。

获取其他内置对象

一个pageContext对象等于所有内置对象,即1个当9个。这是因为可以使用pageContext对象获取其它8个内置对象:

(1)JspWriter getOut():获取out内置对象;
(2)ServletConfig getServletConfig():获取config内置对象;
(3) Object getPage():获取page内置对象;
(4)ServletRequest getRequest():获取request内置对象;
(5)ServletResponse getResponse():获取response内置对象;
(6) HttpSession getSession():获取session内置对象;
(7)ServletContext getServletContext():获取application内置对象;
(8)Exception getException():获取exception内置对象;

结语

这就是今天的内容了,比较简短,但是比较重要。看完后记得多动手练习哈。

持续更新中…

【JSP进阶】JSP九大内置对象,这你也不知道?相关推荐

  1. JSP运行原理 九大内置对象 四大作用域

    Jsp的简介 jsp的全称是java server pages 意思为java的服务页面 jsp必须运行在服务器,不能脱离服务器单独运行 jsp是可以写java代码的html jsp的本质就是一个se ...

  2. 相对地址与绝对地址的区别?请求重定向与请求转发的区别?jsp有哪九大内置对象?servlet如何获取session和application对象?

    目录 1.说说相对地址与绝对地址的区别? 2.说说请求重定向与请求转发的区别? 3.jsp有哪九大内置对象?servlet如何获取session和application对象? 1.说说相对地址与绝对地 ...

  3. jsp中的九大内置对象与四大域对象

    什么是内置对象? 在jsp中已经创建好的对象名,而这些对象无需自己在实例化.通过该对象名可以调用相应的类方法. 九大内置对象 1. out对象---作用:用来输出信息到浏览器.常见的方法: print ...

  4. Java Web(五) JSP详解(四大作用域九大内置对象等)

    前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...

  5. JSP九大内置对象...

    原文地址:http://blog.sina.com.cn/s/blog_6267d71d0100pryr.html JSP九大内置对象: 1.Request, 2.Response,3.Out,4.S ...

  6. 【Spring】JSP 九大内置对象、作用域复习

    博客: 总结 JSP的四大域对象.Servlet的四个作用域: pageContext.request.session.application JSP 九大内置对象和四大作用域复习 名称 类型 含义 ...

  7. JSP四大域对象与九大内置对象

    域对象的作用:保存数据,获取数据,共享数据. page:jsp页面被执行,生命周期开始,jsp页面执行完毕,生命周期结束(jsp当前页面有效) request:用户发送一个请求,生命周期开始,服务器返 ...

  8. JSP的四大作用域和九大内置对象

    JSP的四大作用域和九大内置对象 https://wenku.baidu.com/view/a0974190152ded630b1c59eef8c75fbfc77d949d?ivk_sa=102319 ...

  9. 面试之JSP九大内置对象和JSP四大作用域

    jsp 九大内置对象和其作用详解 JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config. ...

  10. JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)

    JSP的基本构成:HTML文件+Java片断+JSP标签 三大指令:page指令.include指令.taglib指令. page指令: 1.language属性:设置当前页面中编写JSP脚本使用的语 ...

最新文章

  1. 【java设计模式之Command(菜单命令) 】
  2. linux的initrd.img的解压和打包
  3. python中valueerror是什_Python:ValueError和Exception的区别?
  4. Aptana Studio 3 如何汉化,实现简体中文版
  5. 7-1 特殊a串数列求和 (20 分)
  6. cloc统计代码行数
  7. python解决八数码问题_python八数码
  8. 谷歌浏览器访问端口限制
  9. 单核性能强的服务器cpu,单核能力最强的cpu是哪个?
  10. 如何将腾讯视频下载的qlv文件导入PR中编辑
  11. ubuntu16.04笔记本查看电脑配置(CPU,显卡,内存,硬盘)
  12. 一些常用的电脑词汇解释
  13. 根据表格背景色统计表格数量
  14. JS 保留两位小数,不足用0补齐
  15. 彻底摒弃流量主导的发展模式 才能真正让电商走出流量的怪圈
  16. 【CV】对比学习经典之作 SimLR 论文笔记
  17. mathtype7 正版官网 宣布免费使用
  18. cass里填充面怎么导入arcgis_ArcGIS与CASS在地籍建库中的结合应用视频课程(GIS思维)...
  19. Benchmark 性能测试简介
  20. 如何开始一个vue项目

热门文章

  1. OPERA重要密码学习一
  2. readelf命令使用说明
  3. GBaseDataStudio 管理工具简介
  4. win10桌面null图标删除
  5. pytorch——MINST数据集
  6. 【CAD】DWF文件格式详细说明,清晰易懂
  7. ArcMap怎么导出shape文件到奥维互动地图
  8. getchar与getch函数的区别
  9. Axure 9怎么导入阿里巴巴矢量图标的Iconfont图标
  10. 不登录复制 CSDN代码