JSP页面请求和响应

  • 1、JSP内置对象
  • 2、out的方法
  • 3、out输出的方法
  • 4、page对象
  • 5、request获取客户端信息的方法
  • 6、request获取表单数据的方法
  • 7、request处理中文的方法
  • 8、response重定向的使用
  • 9、session对象
  • session 的常用方法
  • 10、application对象
  • application 对象常用方法
  • 11、config对象
  • config 对象常用方法
  • 12、pageContext对象
  • pageContext 对象常用方法
  • 13、exception对象
  • exception 对象常用方法


1、JSP内置对象

1、request
2、response
3、out
4、session
5、application
6、page
7、pageContext
8、config
9、exception

2、out的方法

方法

说明

clean()

清除缓冲区里的数据,不把数据写到客户端

cleanBuffer()

清除缓冲区的当前内容,并把数据写到客户端

flush()

输出缓冲区的数据

getBufferSize()

返回缓冲区以字节数的大小,如不设缓冲区则为0,缓冲区大小用<%@page buffer="Size"%>设置

getRemainning()

获取缓冲区剩余空间大小

isAutoFlush()

返回缓冲区满时,是自动清空还是抛出异常

close()

关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出

3、out输出的方法

out最常用的方法是print()和println()。

4、page对象

常用方法:

方法

说明

hasCode()

返回网页文件中的hasCode

getClass()

返回网页的类信息

toString()

返回代表当前页面的文字字符串

equals(Object o)

比较o对象和指定对象是否相等

getServletConfig()

获得当前的config对象

getServletInfo()

返回关于服务器程序的信息

5、request获取客户端信息的方法

书上列举的方法:(待添加)

方法

说明

getParameter(String name)

返回name指定参数的参数值

getParameterValues(String name)

返回包含参数name的所有值的数组

setAttribute(String,Object)

存储此请求中的属性

getAttribute(String name)

返回指定属性的属性值

getContentType()

得到请求体的MIME类型

getProtocol()

返回请求用的协议类型及版本号

getServerName()

返回接受请求的服务器主机名

getServerPort()

返回服务器接受此请求所用的端口号

getCharacterEncoding()

返回字符编码方式

setCharacterEncoding()

设置请求的字符编码方式

getContentLength()

返回请求体的长度(以字节数)

getRemoteAddr()

返回发送此请求的客户端IP地址

getRealPath(String path)

返回一虚拟路径的真实路径

getContextPath()

返回上下文路径

获取HTTP Headers信息:getHeaderNames(),hasMoreElements(),nextElement(),getHeader(),

6、request获取表单数据的方法

getParameter():文本元素、单选按钮、下拉列表框
getParameterValues():复选框、多选列表框

7、request处理中文的方法

setCharacterEncoding(“UTF-8”)。要在页面没有调用任何request前使用。

8、response重定向的使用

sendRedurect()

sendError(500,"")

常用方法:(待添加)

方法名称

说明

addCookie(Cookie cookie)

添加一个 Cookie 对象,用来保存客户端用户信息。用request对象的getCookies()方法可以获得这个 Cookie

setContentType(String contentType)

设置响应 MIME 类型。例如: response.setContentType(“application/msword;charset Cookie =GB2312”)

setCharacterEncoding(String charset)

设置响应使用字符编码格式

setHeader(String name,String value)

设定指定名字的HTTP文件头的值,如该值存在,会被新值覆盖。例如:在线聊天室,当refresh值为“5”时,就表示页面每5秒就要刷新一次。response.setHeader(“refresh”,”5”)

sendRedirect(URL)

将用户重定向到一个不同的页面URL。调用此方法,终止以前的应答,更改浏览器内容为一个新的的URL。注意:使用sendRedirect重定向是没办法通过request.setAttribute来传递对象到另外一个页面的。

String encodeURL(String url)

将url予以编码,回传包含sessionId的URL。用response.sendRedirect(response.encodeURL(url))的好处就是他能将用户的session追加到网址的末尾,也就是能够保证用户在不同的页面时的session对象是一致的. 这样做的目的是防止某些浏览器不支持或禁用了COOKIE导致session跟踪失败

StringencodeRedirectURL(String url)

对于使用sendRedirect()方法的url进行编码

9、session对象

在 WEB 应用中,当一个客户首次访问服务器上的某个 jsp 页面时,jsp引擎(比如 TOMCAT) 将为这个客户创建一个 session 对象,当客户关闭浏览器离开之后,session 对象被注销。 设置 session 的目的是为了服务器端识别客户。由于 http 协议是无连接的。客户浏览 器与服务器建立连接,发出请求,得到响应。一旦发送响应,Web 服务器就会忘记你是谁。 下一次你再做请求的时候,Web 服务器不会认识你。换句话说,它们不记得你曾经做过请求, 也不记得它们曾经给你发出过响应,什么都不记得了。有时这样做没什么,但有些时候可能 需要跨多个请求保留与客户的会话状态。比如在网上购物这样的应用中,当客户在选完商品 后,进入结算页面后,服务器端需要知道这个客户的购物车中有哪些商品。在网站计数器应 用中,服务器端同样需要知道是一个新客户访问网站,还是老客户在进行刷新操作,以正确 统计访问量。

session 的常用方法

方法名称

说明

setAttribute(String attName,Object value)

设定指定名字属性值,并把它存储在 session 对象中。

getAttribute(String attName)

获取指定名字属性值,若属性不存在,返回 null。

Enumeration getAttributeNames()

返回 session 对象中存储的每一个属性对象,结果是枚举类对象。

removeAttribute(Stringa ttName)

删除指定属性。

setMaxInactiveInterval(int interval)

设置 session 有效时间,单位秒。

getMaxInactiveInterval( )

获取 session 对象生存时间,单位秒。

invalidate()

销毁 session,并释放所有与之相关联的对象。要牢记会话与用户相关联,而不是单个 Servlet 或 Jsp页面。

getId()

返回当前 session 的 ID。

isNew()

判断当前用户是否为新用户,可以判断用户是否刷新了当前页面。如果用户还没有用这个会话 ID 做过响应,isNew()就返回 true。

补充:

作用域:在一次会话范围内容有效
生命周期:session的生命周期包括三个阶段:创建、活动、销毁

创建:当客户端第一次访问某个jsp或者servlet的时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器发送请求时,都会将此sessionId携带过去,服务端会对此sessionId进行校验。
活动:某次会话当中通过超链接打开的新页面属于同义词会话。只要当前页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。

本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。

注意事项:注意原有会话还存在,只是这个旧的SessionID任然存在服务端,只不过再也没有客户端会携带它然后交予服务端校验。
销毁(三种方式):
1.调用了session.invalidate()方法
2.session过期(超时)
3.服务器重新启动:Tomcat默认session超时时间为30分钟。

10、application对象

对于一个容器而言,每个用户都共同使用一个 application 对象,这和 session 对象是 不一样的,它用于实现用户间数据共享。服务器启动后,就会自动创建 application 对象, 这个对象一直会保持,直到服务器关闭为止。

简单来说就是:
作用域:服务器开启后,全局共享
生命周期:服务器开启到服务器关闭

application 对象常用方法

方法名称

说明

setAttribute(String attName,Object value)

设定指定名字属性值。

getAttribute(String attName)

获取指定名字属性值。

Enumeration getAttributeNames()

返回所有 application 对象的属性名字, 结果是枚举类对象。

removeAttribute(String attName)

删除指定属性。

String getRealPath(String path)

返回虚拟路径的真实路径。

11、config对象

config 对象被封装成 javax.servlet.ServletConfig 接口,表示 Servlet 的配置。当 一个 Servlet 初始化时,容器把某些信息通过此对象传递给 Servlet。

config 对象常用方法

方法名称

说明

getInitParameter(String name)

获取名字为 name 的初始参数值。

Enumeration getInitParameterNames()

获取这个 Jsp 所有初始参数的名字。

getServletContext()

返回执行者 Servlet 上下文。

12、pageContext对象

pageContext 对象被封装成 javax.servlet.jsp.PageContext 接口,它为 Jsp 页面包装 页面上下文,它封装了对其它八大隐式对象的引用,提供存取所有关于 Jsp 程序执行时期所 要用到的属性方法。

pageContext 对象常用方法

方法名称

说明

forward(String relativeURL)

把页面转发到另一个页面或者 Servlet 组件上

getAttribute(String name[,int scope])

获取属性的值

getException()

返回当前的 exception 对象

getRequest()

返回当前的 request 对象

getResponse()

返回当前的 response 对象

getServletConfig()

返回当前页面的 ServletConfig 对象

getServletContext()

返回 ServletContext 对象。这个对象对所有页面都是共享的

getSession()

返回当前页面的 session 对象

setAttribute(String name,String value)

设置属性值

removeAttribute(String name)

删除指定属性

invalidate()

返回 ServletContext 对象,全部销毁。

13、exception对象

如果在 Jsp 页面中出现没有捕获的异常,就会生成 exception 对象,并把它传送到在 page 指令中设定的错误页面中,然后在错误处理页面中处理相应的 exception 对象。59 exception 对象只有在错误处理页面(在页面指令里 isErrorPage=true)才可以使用。

exception 对象常用方法

方法名称

说明

getMessage()

获取异常消息字符串

toString()

以字符串形式返回对异常的描述