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,缓冲区大小用 |
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() | 以字符串形式返回对异常的描述 |