JSP九大内置对象与Servlet学习笔记[转]

我们常说的JSP有九大内置对象分别为:request、response、session、out、pagecontext、page、exception、application、config。

我们知道,JVM只能识别java类,并不能识别JSP代码,那么这些对象是如何产生的的呢?这就要提到Servlet。Servlet就是用Java编写的服务器端程序。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。

JSP的本质就是Servlet,Servlet是JSP的前身,JSP是Servlet的扩展;当JSP第一次被访问时,Web容器将JSP代码编译成JVM能够识别的Java类,JSP经编译后就变成了Servlet。(JSP与Servlet联系)

JSP中的内置对象都是通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。

JSP是HTML中内嵌Java代码,侧重页面显示;而Servlet是HTML代码与Java代码分开,侧重逻辑控制。(JSP与Servlet区别)

1、request对象(转译后对应javax.servlet.http.HttpServletRequest对象)

request对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据(包括头信息、系统信息、请求方式以及请求参数等)。

request对象的生命周期:一次请求。

request对象的作用域:JSP页面内有效。

request常用的方法:

1 object getAttribute(String name)           ----返回指定属性的属性值
2 Enumeration getAttributeNames()         ----返回所有可用属性名的枚举
3 String getCharacterEncoding()             ----返回字符编码方式
4 int getContentLength()                          ----返回请求体的长度(以字节数)
5 String getContentType()                        ----得到请求体的MIME类型(多用途互联网邮件扩展类型)
6 ServletInputStream getInputStream()     ----得到请求体中一行的二进制流
7 String getParameter(String name)         ----返回name指定参数的参数值
8 Enumeration getParameterNames()      ----返回可用参数名的枚举
9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组
10 String getProtocol()                             ----返回请求用的协议类型及版本号
11 String getScheme()                             ----返回请求用的计划名,如:http.https及ftp等
12 String getServerName()                       ----返回接受请求的服务器主机名
13 int getServerPort()                               ----返回服务器接受此请求所用的端口号
14 BufferedReader getReader()              ----返回解码过了的请求体
15 String getRemoteAddr()                       ----返回发送此请求的客户端IP地址
16 String getRemoteHost()                       ----返回发送此请求的客户端主机名
17 void setAttribute(String key,Object obj)---设置属性的属性值
18 StringgetRealPath(String path)            ----返回一虚拟路径的真实路径
19 String request.getContextPath()          ----返回上下文路径

2、response对象 (转译后对应javax.servlet.http.HttpServletResponse对象)

response对象表示服务器端对客户端的回应。主要用于设置头信息、跳转、Cookie等。

response的生命周期:一次响应。

response的作用域:只在JSP页面内有效。

response常用方法:

public void  setHeader(java.lang.String  name, java.lang.String  value)     ----设置头信息的名字和内容
public void sendRedirect(java.lang.String location) throws java.io.IOException  ----跳转,由一个页面跳往另外一个页面
public void addCookie(Cookie  cookie)                                                               ----向客户端加入cookie
public void setContentType(java.lang.String type)    ----设置内容的返回类型

在了解了request与response的用法后,有一个重要的问题需要清楚,请求转移与请求重定向的区别:

请求重定向:response.sendRedirect(), 客户端行为,从本质上讲等同于两次请求,前一次的请求对象不会保持,地址栏的URL地址会改变。

请求转发:request.getRequsetDispatcher().forward(requset,response);服务器行为,是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。(服务器内部转发,所有客户端看不到地址栏的改变)。

3、session对象 (转译后对应javax.servlet.http.HttpSession对象)

session对象用于存储特定的用户会话所需的信息 。

session对象生命周期:从存入数据时开始,默认闲置30分钟后失效。

session对象作用域:会话内有效。(从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话;因为http是无状态的,Session需要使用Cookie作为识别标志。该Cookie为服务器自动生成的,它的maxAge属性一般为-1,表示仅当前浏览器内有效,并且各浏览器窗口间不共享,关闭浏览器就会失效。)

session常用方法:

public String getId()                                     ----获取Session对象编号。
public void setAttribute(String key,Object obj)----将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。
public Object getAttribute(String key)             ----获取Session对象中含有关键字的对象。
public Boolean isNew()                                   ----判断是否是一个新session

4、application对象(转译后对应javax.servlet.ServletContext对象)

application对象用于存储和访问来自任何页面的变量,类似于 session 对象。不同之处在于,所有的用户分享一个 Application 对象,类似于“全局变量”,而 session 对象和用户的关系是一一对应的。

application对象生命周期:服务器启动发送第一个请求时就产生了Application对象,直到服务器关闭。

application对象常用方法:

setAttribute(String key,Object obj)   ----将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。
getAttribute(String key)                    ----获取Application对象中含有字的对象。

5、out 对象(转译后对应javax.servlet.jsp.jspWriter对象)

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。(注意要及时关闭输出流)

其主要方法如下:

clear()            ----清除缓冲区中的数据,若缓冲区已经是空的,则会产生IOException异常;
clearBuffer()   ----清除缓冲区的数据,若缓冲区为空,不会产生IO异常;
flush()             -----直接将目前暂存于缓冲区的数据输出;
getBufferSize()----返回缓冲区的大小;
getRemaining()----返回缓冲区的剩余空间大小;
isAutoFlush()   ----返回布尔值表示是否自动输出缓冲区的数据;
输出数据的一些方法:
newLine()                   ----输出换行;
print(datatype data)   ----输出不同数据类型的数据;
println(datatype data) ----输出不同数据类型的数据,并自动换行;

6、pageContext 对象(转译后对应javax.servlet.jsp.PageContext对象)

pageContext对象能够存取其他隐含对象,如request、reponse、session、application 等对象。(实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问。)

pageContex常用方法:

void setAttribute(String name, Object value, int scope)----pageContext对象存取其他隐含对象属性的方法,此时需要指定范围的参数:范围参数有四个,分别代表四种范围:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE

pageContext对象取得其他隐含对象的方法:

Exception getException( )               ----回传网页的异常
JspWriter getOut( )                        ----回传网页的输出流
Object getPage( )                           ----回传网页的Servlet 实体
ServletRequest getRequest( )          ----回传网页的请求
ServletResponse getResponse( )      ----回传网页的响应
ServletConfig getServletConfig( )      ----回传此网页的ServletConfig 对象
ServletContext getServletContext( ) ----回传此网页的执行环境
HttpSession getSession( )               ----回传和网页有联系的会话
3.PageContext对象提供取得属性的方法
Object getAttribute(String name, int scope)           ----回传name 属性,范围为scope的属性对象,回传类型为Object
Enumeration getAttributeNamesInScope(int scope) ----回传所有属性范围为scope 的属性名称,回传类型为Enumeration
int getAttributesScope(String name)                     ----回传属性名称为name 的属性范围
void removeAttribute(String name)                       ----移除属性名称为name 的属性对象
void removeAttribute(String name, int scope)        ----移除属性名称为name,范围为scope 的属性对象
void setAttribute(String name, Object value, int scope) ----指定属性对象的名称为name、值为value、范围为scope
Object findAttribute(String name)                         ----寻找在所有范围中属性名称为name 的属性对象

7、config 对象(转译后对应javax.servlet.ServletConfig对象)

config对象的主要作用是取得服务器的配置信息。

config对象常用方法:

getServletContext()                  ----返回 一个含有服务器相关信息的ServletContext对象。
 getIntParameter(String name)  ----返回初始化参数的值。
 getIntParameterNames()          ----返回包含了Servlet初始化所需要的所有参数,返回类型是枚举型

8、page对象 (转译后对应this)

page对象代表JSP本身,只有在JSP页面内才是合法的。page对象有点类似于Java编程中的this指针,就是指当前JSP页面本身。

9、exception对象(转译后对应java.lang.Throwable对象)

exception对象的作用是显示异常信息,必须在page 指令中设定< %@ page isErrorPage="true" %>才能使用,在一般的JSP页面中使用该对象将无法编译JSP文件。

exception对象常用方法:

getMessage( )        ----该方法返回错误信息。
printStackTrace( )  ---- 该方法以标准错误的形式输出一个错误和错误的堆栈。
toString()        ----该方法以字符串的形式返回一个对异常的描述。

原文地址:https://www.cnblogs.com/jimcsharp/p/8576958.html

时间: 2024-08-09 13:35:17

JSP九大内置对象与Servlet学习笔记[转]的相关文章

Jsp九大内置对象与servlet中java对象

request对象 : getParameter(String name)获取表单提交的数据 getParamegerNames() 获取客户端提交的所有参数名 getAttribute(String name)获取name 指定的属性值 getAttributeNames 获取request对象所有属性的名称集合 getSession(Boolean create) 获取HttpSession对象 response 对象:对象用于对客户端的请求作出动态的响应,向客户端发送数据  getChar

JSP九大内置对象的详细学习

1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理.首先,将获取的字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象即可.如下: String textContent=request.getParameter("boy"); byte b[]=textContent.getBy

Java Web学习(11):JSP九大内置对象(一)

在学习九大内置对象之前先来看看Web应用程序的请求响应模式. Web应用程序请求响应模式 Web应用程序的请求响应模式图示: 1)用户发送请求(request) 2)服务器给用户响应(response) 生活案例: JSP九大内置对象一览 JSP内置对象是Web容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明,也就是不使用 new关键字就可以使用的内置对象.JSP内置对象也被称为预定义变量. 九大内置对象为: 九个内置对象的简介见下表: out对象 out对象是javax.

Java Web学习(13):JSP九大内置对象(三)

application对象 什么是application? 服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application 对象都是同一个,直到服务器关闭.但是与session不同的是,所有客户的application对象都是同一个,即所有客户 共享这个内置的application对象. appliaction对象 application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.Se

黑马程序员【JSP九大内置对象和四个作用域】转载

http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ---------- 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JSP中一共有九个以及四个作用域,在下面的文章中我们会一一讲解. 现在我们先来说一下四个作用域,以便描述各大对象都分属于什么作

JSP九大内置对象及其作用+四大域对象

JSP九大内置对象及其作用+四大域对象 一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象. 在servlet程序中,如果开发者希望使用session对象,必须通过re

详解JSP九大内置对象

内置对象:就是在JSP中无需创建就可使用的称为内置对象,它是有容器创建的(如Tomcat.JBoss.weblgic等容器创建). JSP九大内置对象分别为:out.request.response.session.application.pageContext.page.config.exception. 1.out对象 向客户端输出信息,它是JspWriter类的一个实例. 常用的有out.print();或out.println(); 2.request对象 获取客户端传递到服务器的信息.

JSP九大内置对象和四种属性范围解读

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九大内置对象,并对这几大内置对象一个一个的进行分析的解读.内容非常具体,例子都附有代码和执行的结果截图. 本文project下载 一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性.跳转之后无效request:在一次服务请求范围内.server跳转后依旧有效se

JSP九大内置对象的作用和用法总结(转发)

jsp九大内置对象: 内置对象/作用域(每一种作用域的生命周期是不一样的): 1, application 全局作用域 2, session 会话作用域 3, request 请求作用域 4, pageContext 页面作用域 内置对象 5, response 响应对象 6, out 输出流对象 7, page 当前页面对象的实例 8, exception 异常 9, config ServletConfig/FilterConfig对象 优先级(按照生命周期的长短): application