频道栏目
首页 > 程序开发 > web前端 > JavaScript > 正文
JSP内置对象
2016-09-05 09:52:57         来源:shaopaul11的专栏  
收藏   我要投稿

1. out 对象

out对象用于向Web游览器输出信息,并管理应用服务器上的输出缓冲区。

1.1 输出信息

<%
out.print("hello");
out.println("world"); //换行效果只在源码中看的出,网页反映不出。如果想让其显示,需要输出的文本使用HTML的
标记括起来。 %>

1.2 管理响应缓冲

方法 说明
clear() 清楚缓冲区的内容(如果之前使用过flush(),该方法会抛出异常)
clearBuffer() 清除当前缓冲区中的内容,即使内容已提交客户端,也能够访问该方法
flush() 刷新流(手工将缓冲区的数据输出游览器)
isAutoFlush() 检测当前缓冲区已满时是自动清空,还是抛出异常
getBufferSize() 获取缓冲区大小
getRemaining() 获取缓冲区剩余的字节数目

2. request 对象

2.1 获取客户端信息

方法 说明
getHeader(String name) 获取http协议定义的头文件信息
getHeaders(String name) 返回指定名字的request Headers的所有值,其结果是一个枚举型的实例
getHeadersNames() 返回所有request Headers的名字,其结果是一个枚举的实例
getMethod() 获取客户端向服务器端传送数据的方法,如:get,post,header,trace等
getProtocol() 获得客户端向服务器端传送数据所依据的协议名称
getRequestURI() 获得发出请求字符串的客户端地址,不包括请求的参数
getRequestURL() 获得发出请求的字符串的客户端地址
getRealPath() 返回当前请求文件的绝对路径
getRemoteAddr() 获取客户端的ip地址
getRemoteHost() 获取客户端的主机名
getServerName() 获取服务器的名字
getServerPath() 获取客户端所请求的脚本文件的文件路径
getServerPort() 获取服务器的端口号

2.2 访问请求参数

request对象用于处理http请求中的各项参数。在这些参数中,最常用的是获取访问请求参数。

register.jsp:
<%
request.getParameter("name");
request.getParameter("pwd");
%>

Notice: request 没有 setParameter()方法

2.3 在作用域中管理属性

在进行请求转发时,需要把一些数据传递到转发后的页面进行处理。这时,就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中。

request.setAttribute(String name, Object object);
request.getAttribute(String name); //返回object对象

2.4 解决中文乱码

如果request的传参是中文,在显示这个参数时会变成乱码。因为所有的request请求都是ISO-8859-1,而在页面采用的是UTF-8的编码方式。要解决此问题,需要用指定编码类型重新构造一个String对象。

<%=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")%>

2.5 显示国际化信息

游览器可以通过accept-language的HTTP报头向Web服务器指明它所使用的本地语言,request对象中的getLocale()和getLocales()方法允许JSP开发人员获取这一信息。

<%
java.util.Locale locale = request.getLocale();
String str = "";
if(locale.equals(java.util.Locale.US)){
    str = "hello";
}else if(locale.equals(java.util.Locale.CHINA)){
    str = "你好";
}
<%=str%>
%>

3. response 对象

用于响应客户请求,向客户端输出信息

3.1 重定向网页

语法:

response.sendRedirect(String path);

Notice: 重定向之后的代码没有意义

3.2 处理HTTP头文件

禁用缓存:对于一些安全性较高的网站,通常需要这样
<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>
设置页面自动刷新
<%
response.setHeader("refresh","10"); //每隔10秒自动刷新一次
%>
定时跳转网页
response.setHeader("refresh","5;URL=login.jsp");

3.3 设置输出缓冲

通常情况下,服务器要输出的内容会先放入缓存,然后再把缓存区的内容写入客户端。当满足以下3种情况时就会写入:

JSP页面输出信息已经全写入缓冲区 缓冲区已满

在JSP页面中,调用了response对象的flushBuffer() or out的flush()

对缓冲区进行配置的方法

方法 说明
flushBuffer() 强制将缓冲区的内容输出客户端
getBufferSize() 获取响应所使用的缓冲区的实际大小,如果没有缓冲区,则返回0
setBufferSize(int size) 设置缓冲区的大小
reset() 清楚缓冲区的内容,同时清除状态码和报头
isCommitted() 检测服务器端是否已经把数据写入客户端

4. Session 对象

session被称为会话。通过session可以在应用程序的Web页面进行跳转时,保存用户状态,使整个用户状态一直保持下去,知道关闭游览器。
如果在一个会话中,客户端长时间不向服务器发送请求,session对象就会自动消失。

4.1 创建及获取客户的会话

通过session对象可以存储或读取客户相关的信息。

//创建
session.setAttribute(String name, Object obj);
//获取
session.getAttribute(String name);// return an object

4.2 从会话中移除指定对象

session.removeAttribute(String name)

4.3 销毁session

session.invalidate();

如果在session被销毁后,再调用session对象的任何方法,都将报出Session already invalidated异常。

4.4 会话超时

用户登录网站后在session的有效期外进行相应操作,用户会看到错误页面。为避免这种情况发生,在开发系统时应该对session的有效性进行判断。

设置会话生命周期的方法 说明
getLastAccessedTime() 返回客户端最后次与会话相关联的请求时间
getMaxInactiveInterval() 以秒为单位返回一个会话内两个请求最大时间间隔
setMaxInactiveInterval() 以秒为单位设置session的有效时间

也可以在web.xml配置失效时间:


     10  // 10分钟

5 Application 对象

application对象用于保存所有应用程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。

5.1 访问应用程序初始化参数

web.xml文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过 标记配置应用程序初始化参数。

application.getInitParameterNames();//获取全部初始化参数
application.getInitParameter(String name);

5.2 管理应用程序环境属性

与session对象一样,也可以在application对象中设置属性(getAttribute, setAttribute, removeAttribute),但application应用范围更广,时间更长。此外还能获取其他信息:

方法 说明
getServerInfo() 服务器信息
getServletContextName() 应用名称
getVirtualServerName() 主机名称

6 config 对象

config对象主要用于获取服务器的配置信息。是ServletConfig类的一个实例,通过pageContext对象的getServletConfig()方法可以获取一个config对象。当一个Servlet初始化时,容器把某些信息传递给这个Servlet。

web.xml


    config
    config.jsp
    
        name
        abc
    



    config
    /config/*
config.jsp

name: <%= config.getInitParameter("name") %>

config对象常用方法:

方法 说明
getServletContext() 获取servlet上下文
getServletName() 获取servlet服务器名
getInitParameter() 获取服务器该初始参数值
getInitParameterNames() 获取服务器所有初始参数名称

6 config 对象

config对象主要用于获取服务器的配置信息。是ServletConfig类的一个实例,通过pageContext对象的getServletConfig()方法可以获取一个config对象。当一个Servlet初始化时,容器把某些信息传递给这个Servlet。

web.xml


    config
    config.jsp
    
        name
        abc
    



    config
    /config/*
config.jsp

name: <%= config.getInitParameter("name") %>

config对象常用方法:

方法 说明
getServletContext() 获取servlet上下文
getServletName() 获取servlet服务器名
getInitParameter() 获取服务器该初始参数值
getInitParameterNames() 获取服务器所有初始参数名称

7 page 对象

指向了当前jsp页面本身,可以看作是this指针的别名。包含的方法有:

方法 说明
getClass() 返回当前Object的类
hashCode() 返回该Object的哈希代码
toString() 把该Object类转换成字符串
equals(Object o) 比较该对象和指定的对象是否相等

8 获取异常的exception对象

exception对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置为isErrorPage属性为true的页面才可以被使用。

如果在JSP页面中出现没有捕获的异常,就会生成exception对象,并把exception对象传送到在page指令中设定的错误页面中,然后在错误页面中处理exception对象。

exception常用方法:

方法 说明
getMessage() 返回exception对象的异常信息字符串
getLocalizedmessage() 返回本地化的异常错误
toString() 返回关于异常错误的简单信息描述
fillInStackTrace() 重写异常错误的栈执行轨迹

9 获取会话范围的pageContext对象

它可以获取JSP页面的request,response,session,application,exception等对象。JSP页面中可以直接使用pageContext对象。

常用方法:

方法 说明
forward(String path) 把页面转发到另一页面
getAttribute(String name) 获取参数值
getAttributeNamesInScope(int scope) 获取某范围的参数集合,返回值为Enumeration对象
setAttribute() 为指定范围内的属性设置属性值
removeAttribute() 删除指定范围内的指定属性
getResponse(),getOut(),etc 获取response,out等不同的对象

Notice: 调用对象的方法在实际开发中少使用,一般都直接用该对象。

点击复制链接 与好友分享!回本站首页
相关TAG标签 对象
上一篇:初识AJAX
下一篇:Vuejs——(7)过渡(动画)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站