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

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

前言


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


传送门:【JSP入门】只知道HTML却不知道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。


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


基本不会使用的内置对象:config、page、exception。


有两个对象不是每个JSP页面都可以使用的:exception、session。


深析九大内置对象

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"%>
Insert title here
  <%
  String url = request.getRequestURL().toString();//HttpServletRequest对象
  response.getWriter().println(url);//HttpServletResponse对象
  %>
  <%
  out.println("
ABCCC");//等同于response.getWriter()
  session.setAttribute("user", "张三");//HttpSession类的对象
  out.println((String)session.getAttribute("user"));
  %>
  <%
  String cp = application.getInitParameter("copyright");//ServletContext
  out.println("
");
  out.println(cp);
  %>
  <%
  //通过使用pageContext获取其他对象
  pageContext.getRequest();
  pageContext.getResponse();
  pageContext.getSession();
  pageContext.getServletContext();
  %>


输出页面:

image.png

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


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内置对象;


结语

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


相关文章
|
6月前
|
存储 缓存 Java
JSP九大内置对象及基本使用
JSP九大内置对象及基本使用
142 0
|
Java
17JavaWeb基础 - JSP的九大内置对象/四大作用域
17JavaWeb基础 - JSP的九大内置对象/四大作用域
76 0
|
Java
jsp内置对象和路径
jsp内置对象和路径
94 0
|
3月前
|
缓存 Java 应用服务中间件
JSP的内置对象 request和response
这篇文章详细介绍了JSP的内置对象,包括request、response、out、session和application对象的使用方法和特性,以及如何通过这些对象处理HTTP请求和响应、管理会话和输出数据。
|
5月前
|
缓存 安全 小程序
从基础到进阶:掌握Java中的Servlet和JSP开发
【6月更文挑战第23天】Java Web开发中的Servlet和JSP是关键技术,用于构建动态网站。Servlet是服务器端小程序,处理HTTP请求,生命周期包括初始化、服务和销毁。基础Servlet示例展示了如何响应GET请求并返回HTML。随着复杂性增加,JSP以嵌入式Java代码简化页面创建,最佳实践提倡将业务逻辑(Servlet)与视图(JSP)分离,遵循MVC模式。安全性和性能优化,如输入验证、HTTPS、会话管理和缓存,是成功应用的关键。本文提供了一个全面的学习指南,适合各级开发者提升技能。
46 7
|
6月前
|
XML 前端开发 Oracle
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
63 2
|
6月前
|
前端开发 Java 数据库
【Spring原理进阶】SpringMVC调用链+JSP模板应用讲解
【Spring原理进阶】SpringMVC调用链+JSP模板应用讲解
|
Java
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(二)
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(二)
110 0
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(二)
|
Java 存储
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(一)
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(一)
63 0
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(一)
|
Java
2022年欢迎来到Jsp编程第二课:JSP核心九大内置对象
2022年欢迎来到Jsp编程第二课:JSP核心九大内置对象
88 0