ITPub博客

首页 > 应用开发 > Java > 【JSP进阶】JSP九大内置对象,这你也不知道?

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

Java 作者:大耳朵胡芦娃 时间:2022-03-09 14:29:57 0 删除 编辑

前言

之前我们已经学习了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。


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


基本不会使用的内置对象: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"%>

<!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");//ServletContext

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



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70014874/viewspace-2868528/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2022-03-09

  • 博文量
    1
  • 访问量
    428