JSP九大隐式对象-----面试

因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java---->编译运行

比如我们新建一个index.jsp对象,则可以在Tomcat的work目录查到index_jsp.java和index_jsp.class,该class文件就是一个Servlet,Servlet容器就会按照处理Servlet处理它

通过看源码可知

,该类继承了HttpJspBase,而HttpJspBase是HttpServlet一个子类,所以该类是一个Servlet

我们知道Servlet有service方法,而在service方法中有九个对象定义并初始化完成,我可以在直接在jsp脚本使用这九个对象,这九个对象就是jsp九大隐式对象


名称


类型


描述


out


javax.servlet.jsp.JspWriter


用于页面输出


request


javax.servlet.http.HttpServletRequest


得到用户请求信息,


response


javax.servlet.http.HttpServletResponse


服务器向客户端的回应信息


config


javax.servlet.ServletConfig


服务器配置,可以取得初始化参数


session


javax.servlet.http.HttpSession


用来保存用户的信息


application


javax.servlet.ServletContext


所有用户的共享信息


page


java.lang.Object


指当前页面转换后的Servlet类的实例


pageContext


javax.servlet.jsp.PageContext


JSP的页面容器


exception


java.lang.Throwable


表示JSP页面所发生的异常,在错误页中才起作用

out对象:类型是JspWriter,它的作用是通过out.write()将页面信息向客户端。out的默认缓冲区是8kb,可在<%@ page %>里设置buffer,若buffer为0,则关闭out缓冲区,那么页面内容则写到response缓冲容器中。

request对象:是客户端向服务器发送的一个请求,请求包括请求行,请求头和请求体,我们可以相应的方法获取它们,最重要的是我们可以通过request相应的方法来获取客户端传来的数据,其中常用的方法有getParameter(String name)(通过参数name值获取值),返回对象是一个String类型,request.getParameterMap()(获取所有参数,参数封装到一个Map<String,String[]>数组里),返回值是Map<String,String[]>等方法。

response对象:是服务器相应客户端的一个对象,它可以设置相应行、头和体,可以重定向网页,设置输出缓冲。

fonfig对象:是javax.servlet.ServletConfig一个实例,可以获得web.xml初始化的参数。

session对象:将数据存储在服务器端,为每个客户端都创建一块内存空间存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间。我们可以通过request.getSession()获取当前会话的Session对象(有则获取,没有则会新创建一个)。由于session也是一个域对象,所以Session对象具有三个域操作方法session.setAttribute(String name,Object obj);  session.getAttribute(String name);  session.removeAttribute(String name);通过名字我们可知其意思。还有一点就是session默认生命周期是30分钟,但对服务器进行操作时开始计时。我们也可以在web.xml中配置它的生命周期。当然我们也可以手动关闭,session.invalidate()(手动销毁session对象);

*****当浏览器关闭时,session对象没有被销毁,因为浏览器关闭并没有给服务器传来销毁session的消息,所以session还存在。但是重新打开浏览器,就找不到之前的session呢?因为当关闭浏览器时cookie也就不存在了,有英文Servlet容器把session标识ID作为一个cookie保存在客户端浏览器中,所以我们就不能找到之前的session。

application对象:该对象代表整个web应用,整个web应用共享一个application对象,可以让JSP和Servlet共享数据。例如通过application.setAttribute(name,value)设置值,整个web应用都可以通过application.getAttribute(name)来获取value。还可以使用application对象获取初始化参数。

page对象:就是该jsp页面的对象。(实际开发用的不多)

pageContext对象:表示jsp页面上下文对象,当它和page对象不是一回事。pageContext也是一个域对象,所有它也有域的操作方法:setAttribute(String name,Object obj);getAttribute(String name);removeAttrbute(String name)。pageContext可以向指定的其他域中存取数据,例如pageContext.setAttribute("name", "lisi", pageContext.REQUEST_SCOPE)就是向request域存入name为lisi的一个对象。

pageContext一个重要方法是findAttribute(String name),它会从依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找。(查找从小到大查找---域的范围,pageContext<request<session<application)。

pageContext还可以获取其它8大隐式对象:例如pageContext.getRequest()获取request。当我们需要很多隐式对象作为参数时,我们可以只用pageContext一个对象作为参数,通过它的方法获取其他隐式对象。

exception:exception对象是一个包含上一页抛出的异常的包装器。它通常用于生成对错误条件的适当响应。

今天学习jsp,总结一下。正好把之前学习的东西回顾一下,有好多知识都是学了,但是又忘了,自己又通过网上查找和之前的学习资料查找,又拾起了一些被丢到的。学子java也一样,要温故。

如果有大佬发现错误,请指出,谢谢,向您学习!!

原文地址:https://www.cnblogs.com/yangxiao-/p/12001022.html

时间: 2024-11-08 11:51:33

JSP九大隐式对象-----面试的相关文章

JSP页面以及JSP九大隐式对象

?JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. ?JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据. ?Jsp快速入门:在jsp页面中输出当前时间. ?JSP模版元素 ?JSP表达式 ?JSP脚本片断 ?JSP注释 ?JSP指令 ?JSP标签 ?JSP内置对象 ?如何查找JSP页面中的错误

JSP九大隐式对象

1.jsp的九大隐式对象 request HttpServletRequest response HttpServletResponse session HttpSession application ServletcContext config   ServletConfig exception (特殊情况下使用) page     this(本JSP页面) out       JspWriter(带缓冲的PrintWriter) pageContext (使普通Java类可访问WEB资源,自

关于jsp九大隐式对象

做项目了,发现自己有好多都还不懂,好久没有写随笔了 , 关于自己最近学习的JavaWeb的jsp有九大隐式对象,这九大隐式对象分别对应着servlet中的对象 jsp隐式对象 servlet对象 对应的类 作用 request request HttpServletRequest 作用于一次请求,在请求中可用带上数据 pageContext 页面上下文   jsp.PageContext 作用于jsp页面,可以通过此对象获取其他八大隐式对象 session session  HttpSessio

JavaWeb学习记录(十七)——JSP九大隐式对象

public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application =

java中jsp的九大隐式对象及web四大域

JSP运行原理和九大隐式对象 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用. 由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响. JSP引擎在调用JSP对应的_jspServlet时,会传

JSP_九大隐式对象

JSP九大隐式对象:在翻译过来的Servlet中Service方法自动帮我们前置定义的九个对象,可以在jsp页面中直接使用 page confing application response request session out exception pageContext out 相当于是response.getWriter得到PrintWriter out和response.getWriter获取到的流不同在于,在于这个out对象本身就具有一个缓冲区.利用out写出的内容,会先缓冲在out缓

四大域对象,和jsp的九大隐式对象,已经el表达式的11个隐式对象

四大域对象 1.PageContext :页面范围的数据 2.ServletRequest:请求范围的数据 3.HttpSession:回话范围的数据 4.ServletContext:应用范围的数据 JSP的九大隐式对象 1.out 输出流对象 2.request请求对象 3.response 响应对象 4.config 配置对象 5.session 回话对象 6.application 应用程序对象 7.page 页面对象 8.pageContext 页面上下文对象 9.exception

JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标签及文本 2. 脚本:写JAVA代码,<% %> 3. 表达式:用于输出变量及表达式,<%= %> 4. 注释:分为三种 a) <!-- --> :JSP翻译成Servlet时也将进行翻译.页面中也有. b) <% /*.......*/ %>:JSP翻译成Se

jsp中的九大隐式对象

一.为什么要隐式对象  1.简化了JSP 页面开发, 2.隐式对象名称是JAVA的保留字, 3.隐式对象不需要再去实例化由JSP内部实现和管理的内部对象, 4.通过隐式对象来访问网页的动态内容,JSP隐式对象是web容器加载的一组类 二.九大隐式对象的分类 三.各对象的作用. (1)Application 全局作用域:代表整个运行时的 Web 模块(应用程序) (2)Seesion 会话作用域:代表当前的 HTTP 会话 (3)Request 请求作用域:代表当前的 HTTP 请求 (4)Pag