JavaEE--JSP对象(四)

一、JSP简介

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

二、JSP对象

1. Request

对应javax.servlet.http.HttpServletRequest对象
request对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据(包括头信息、系统信息、请求方式以及请求参数等)。
request对象的生命周期:一次请求。
request对象的作用域:JSP页面内有效。
request常用的方法:

 object getAttribute(String name)           ----返回指定属性的属性值
 Enumeration getAttributeNames()         ----返回所有可用属性名的枚举
 String getCharacterEncoding()             ----返回字符编码方式
 int getContentLength()                          ----返回请求体的长度(以字节数)
 String getContentType()                        ----得到请求体的MIME类型(多用途互联网邮件扩展类型)
 ServletInputStream getInputStream()     ----得到请求体中一行的二进制流
 String getParameter(String name)         ----返回name指定参数的参数值
 Enumeration getParameterNames()      ----返回可用参数名的枚举
 String[] getParameterValues(String name) 返回包含参数name的所有值的数组
 String getProtocol()                             ----返回请求用的协议类型及版本号
 String getScheme()                       ----返回请求用的计划名,如:http.https及ftp等
 String getServerName()                    ----返回接受请求的服务器主机名
 int getServerPort()                        ----返回服务器接受此请求所用的端口号
 BufferedReader getReader()              ----返回解码过了的请求体
 String getRemoteAddr()                       ----返回发送此请求的客户端IP地址
 String getRemoteHost()                       ----返回发送此请求的客户端主机名
 void setAttribute(String key,Object obj)---设置属性的属性值
 StringgetRealPath(String path)            ----返回一虚拟路径的真实路径
 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地址不会改变。(服务器内部转发,所有客户端看不到地址栏的改变)。

通过 HttpServletResponse 对象可用。

序号 方法 & 描述
1 public void setStatus ( int statusCode )该方法设置一个任意的状态码。setStatus 方法接受一个 int(状态码)作为参数。如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。
2 public void sendRedirect(String url)该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。
3 public void sendError(int code, String message)该方法发送一个状态码(通常为 404),连同一个在 HTML 文档内部自动格式化并发送到客户端的短消息。

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. Out

对应javax.servlet.jsp.jspWriter对象

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

5. 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( )               ----回传和网页有联系的会话
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 的属性对象

6. Exception

对应java.lang.Throwable对象
exception对象的作用是显示异常信息,必须在page 指令中设定< %@ page isErrorPage="true" %>才能使用,在一般的JSP页面中使用该对象将无法编译JSP文件。
exception对象常用方法:
getMessage( ) ----该方法返回错误信息。
printStackTrace( ) ---- 该方法以标准错误的形式输出一个错误和错误的堆栈。
toString() ----该方法以字符串的形式返回一个对异常的描述。

7. Page

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

8. Config

对应javax.servlet.ServletConfig对象
config对象的主要作用是取得服务器的配置信息。
config对象常用方法:

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

9. Application

对应javax.servlet.ServletContext对象
application对象用于存储和访问来自任何页面的变量,类似于 session 对象。不同之处在于,所有的用户分享一个 Application 对象,类似于“全局变量”,而 session 对象和用户的关系是一一对应的。
application对象生命周期:服务器启动发送第一个请求时就产生了Application对象,直到服务器关闭。
application对象常用方法:

setAttribute(String key,Object obj)   ----将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。
getAttribute(String key)                    ----获取Application对象中含有字的对象。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,896评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,283评论 3 402
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,085评论 0 367
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,010评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,015评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,492评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,858评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,829评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,374评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,409评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,527评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,131评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,858评论 3 339
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,296评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,434评论 1 276
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,087评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,597评论 2 366

推荐阅读更多精彩内容

  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,468评论 0 13
  • Jsp技术总结 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样...
    java日记阅读 1,665评论 0 18
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,158评论 0 6
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 1,412评论 0 10
  • 天晓丝雨柔柔 风轻雾气蒙蒙 看着娑婆听凡音 无争互和总相宜 阴阴天 静而梦回 懒人无求任时光 不争不恋似不舍 说应...
    愚夫_e8a2阅读 547评论 8 28