何为JSP?

    要解释JSP的九个内置对象,必须先要搞懂何为JSP?JSP全称JavaService Pages中文:Java服务器页面。其实看到JSP学过.NET都可能对想到ASP,没错,两者确实很像。ASP是在HTML页面中加入C#用于显示层,像后台传递数据之类。而JSP是在HTML页面注入Java语言,便于向后端传递信息。JSP从本质上来分析就是一个简化版的Servlet。而jsp和Servlet的区别就是,jsp需要Servlet容器先编译成Servlet类,然后才能运行它。

    在Tomcat中发布项目后,可以在Tomcat的工作目录中找到该JSP文件翻译后的xxx_jsp.java文件以及xxx_jsp.class文件,打开xxx_jsp.java上面默认都是初识化jsp的九个内置对象,而且这九个内置对象都是Servlet API,编译成Servlet使用这九个对象操作客户与服务器之间的信息传递,而JSP文件中的所以在翻译前也就是在编写JSP文件时就已经声明了JSP中的这九个对象,进行了默认初识化,并且没有展示。

九个内置对象

request

    javax.servlet.http.HttpServletRequest的实例,代表了客户端的请求信息,主要用于接受通过Http协议传送到服务器的数据。(包括头信息,系统信息,请求方式以及请求参数),获取客户端请求参数必须使用该对象。

常用的方法

返回值

方法

说明

String

getParameter(String name)

返回请求中的参数值

String[]

getParameterValues(String name)

返回请求参数中集合属性的值

Void

setAttribute(String key , Object value)

设置属性的值

Object

getAttribute(String name)

返回指定属性的属性值

String

getCharacterEncoding()

返回字符编码方式

String

getContentType()

返回请求页面的MIME类型

response


javax.serlvet.http.HttpServletResponse的实例,代表服务器对客户端的响应,主要是将Servlet容器处理过的对象传回给客户端。通常很少使用该对象直接响应,而是使用out对象。一般response对象常用于重定向。


常用的方法

返回值

方法

说明

String

getCharacterEncoding()

返回响应应用哪种字符编码

Void

setContentType(String name)

设置响应的MIME类型

Void

addCookies(Cookie cookie)

向客户端保存Cookies

Void

sendRedirect(String URL)

页面重定向

ServletOutputStream

getOutputStream()

返回响应的一个二进制输出流

Out

    javax.serlvet.jsp.JspWriter的实例,代表JSP页面的输出流,用于输出内容,形成HTML页面。

Session

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

常用方法:

   返回值   

方法

说明

Void

setAttribute(String key , Object value)

设置属性的值

Object

getAttribute(String name)

返回指定属性的属性值

application

    javax.servlet.ServletContext的实例,该实例代表JSP所属的web应用本事,可用于JSP页面,或者在Servlet之间交换信息。application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。

常用方法:

返回值

方法

说明

Void

setAttribute(String key , Object value)

设置属性的值

Object

getAttribute(String name)

返回指定属性的属性值

RequestDispatcher

getRequestDispatcher(String uripath)

返回指定资源的RequestDispatcher对象

String

getInitParameter(String paramName)

用来调用初始化在web.xml中存放的参量

ServletContext

getContext(String  uripath)

返回指定WebApplication的application对象

pageContext

    javax.servlet.jsp.PageContext的实例。代表该JSP页面上下文,使用该对象可以访问页面中的共享数据,也就是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象

常用方法:

返回值

方法

说明

ServletConfig

getServletConfig()

返回当前页的ServletConfig对象(config)

ServletContext

getServletContext()

返回当前页的ServletContext对象(application)

config

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

exception

    java.lang.Throwable的实例,代表其他页面中的异常和错误,只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时,对象才能使用。

常用方法

返回值

方法

说明

String

getMessage()

返回描述异常的消息

Void

printStackTrace()

显示异常及其栈轨迹

page

    代表页面本身,也就是Servlet中的this,其类型是生成Servlet类,能用page的地方就可以用this。

【总结】

    上述就是JSP的九个内置对象,从自己的项目来说经常用到,区分每个对象的作用,对每个对象的方法做的一定的认知,不足的地方慢慢查漏补缺!

给自己个信念,坚信在学习这件事上,付出和收获一定成正比,为自己加油。