上一章主要讲到JSP内建对象的概念;这次主要讲一些内建对象的方法。
1、 Request对象主要方法:
☉ getAttribute(String name) 返回name属性值。
☉ getAttributeNames() 返回request对象所有属性名字。
☉ getCookies() 返回客户端的cookies对象。
☉ getHeader(String name) 获得HTTP协议定义的文件头信息。
☉ getHeaders(String name) 返回指定名字的request Header的所有值。
☉ getMethod() 获得客户端向服务器端传送数据的方法。
☉ getParameter(String name) 获得客户端传送给服务器端的参数值。
☉ getParameterNames() 获得客户端传送给服务器端的所有参数的名字。
☉ getParameterValue(String name) 获得指定参数的所有值。
☉ getProtocol() 获取客户端向服务器端传送数据所依据的协议名称。
☉ getQueryString() 获得查询字符串。
☉ getRequestURI() 获取发出请求字符串的客户端地址。
☉ getRemoteAddr() 获取客户端的IP地址。
☉ getRemoteHost() 获取客户端的名字。
☉ getServerName() 获取服务器的名字。
☉ getServletPath() 获取客户端所请求的脚本文件的文件路径。
☉ getServerPort() 获取服务器的端口号。
☉ setAttribute(String name , java.lang.Object objt) 设置名字为name的request参数的值,该值是由java.lang.Object类型的objt指定。
实例:[Request.jsp]
<html>
<body>
<h1> Request Information</h1>
<hr>
JSP Request Method:<%= request.getMethod() %>
<br>
Request URI:<%= request.getRequestURI() %>
<br>
Request Protocol:<%= request.getProtocol() %>
<br>
Servlet Path:<%= request.getServletPath() %>
<br>
Remote User:<%= request.getRemoteUser() %>
<br>
Remote Address:<%= request.getRemoteAddr() %>
<br>
Remote host:<%= request.getRemoteHost() %>
<br>
Path info:<%= request.getPathInfo() %>
<br>
Path translated:<%= request.getPathTranslated() %>
<br>
Query String:<%= request.getQueryString() %>
<br>
Content Length:<%= request.getContentLength() %>
<br>
Content Type:<%= request.getContentType() %>
<br>
Server Name:<%= request.getServerName() %>
<br>
Server Port:<%= request.getServerPort() %>
<br>
Authorization Scheme:<%= request.getAuthType() %>
<hr>
The Browser you are using is <%= request.getHeader("User-Agent") %>
<hr>
</body>
</html>
2、 Response对象主要方法:
☉ addCookie(Cookie cook) 添加一个cookie对象,用来保存客户端的用户信息。
☉ addHeader(String name , String value) 添加HTTP文件头信息。
☉ containsHeader(String name) 判断指定名字的HTTP文件头是否已经存在。
☉ sendError(int) 向客户端发送错误的信息。
☉ setHeader(String name , String value) 设置指定名字的HTTP文件头的值。
实例:定时刷新[refresh.jsp]
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.Date" %>
<html>
<head>
<title>定时刷新页面</title>
</head>
<body>
<b>本页用来说明response对象</b>
<br>
<b>当前时间为:</b>
<% response.setHeader("refresh","10"); %>
<%
out.println(new Date());
%>
</body>
</html>
3、 Out对象主要方法:
☉ out.print/println (Boolean | char | char[] | double | float | int | long | object | string |) 输出各种类型的数据。
☉ out.newLine() 输出一个换行字符。
☉ out.flush() 输出缓冲区里的数据。
☉ out.close() 关闭输出流。
☉ out.clearBuffer() 清除缓冲区里的是数据,并把数据输出到客户端。
☉ out.clear() 清除缓冲区里的是数据,但不会把数据输出到客户端。
☉ out.getBufferSize() 获得缓冲区的大小。
☉ out.getRemaining() 获取缓冲区中没有被占用的空间的大小。
☉ out.isAutoFlush() 返回布尔值。
4、 Session对象主要方法:
☉ getAttribute(String name) 获取与指定名字name相联系的信息。
☉ getAttributeNames() 返回session对象中存储的每一个属性对象。
☉ getCreationTime() 返回session被创建的时间。
☉ getId() 返回唯一的标识,为每一个session而产生。
☉ getLastAccessedTime() 返回当前session对象最后被客户发送的时间。
☉ getMaxInactiveInterval() 返回总时间(秒)。
☉ removeAttribute(String name) 删除与指定名字name的相联系的信息。
☉ setAttribute(String name , java.lang.object value) 设置指定名字name的属性值value,并存储在session对象中。
5、 PageContext对象主要方法:
☉ getAttribute scope() 检索一个特定的已经命名对象的范围。
☉ findAttribute() 用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索。
☉ setAttribute() 用来设置默认页面的范围或特定范围之中的已命名对象。
☉ removeAttribute() 用来删除默认页面范围或特定范围之中已命名的对象。
6、 Application对象主要方法:
☉ getAttribute(String name) 返回由name指定的名字application对象的属性的值。
☉ getAttributeNames() 返回所有application对象的属性的名字。
☉ getInitParameter(String name) 返回由name指定的名字的application对象的某个属性的初始值。
☉ getServletInfo() 返回servlet编译器当前版本信息。
☉ setAttribute(String name , Object object) 设置指定名字name的application对象的属性值object.
实例:在线人数统计[online.jsp]
<%@ page contentType="text/html;charset=gb2312" %>
<body onunload="javascript:cancel();">
<%
Integer i = (Integer)application.getAttribute("counter");
String name = (String)application.getAttribute("onlineName");
//StringBuffer total = new StringBuffer(name);
%>
<font color="blue">
<% out.println((String)session.getAttribute("username")); %>您好:
</font>
<br>
<font color="red">
当前在线人数: <%= i %>
</font>
<br>
<font color="green">
在线人总名册: <% out.println(name); %>
</font>
<script language="javascript">
<!--
function cancel(){
<%
if(session.getAttribute("username")!="" && session.getAttribute("username")!=null){
//cancelname 为注销人名
String cancelname;
cancelname=(String)session.getAttribute("username");
//out.println(cancelname);
//j为cancelname在总名册中的初始位置
//k为cancelname的总长度
//t为cancelname在总名册中的结束位置
int j,k,t;
j=name.indexOf(cancelname);
k=cancelname.length();
t=j+k;
//out.println(j);
//out.println(t);
StringBuffer total=new StringBuffer(name);
total=total.delete(j-4,t);
i=new Integer(i.intValue()-1);
application.setAttribute("counter",i);
name=(String)total.toString();
application.setAttribute("onlineName",name);
//out.println("window.alert("+name+")");
session.setAttribute("username","");
}
%>
}
-->
</script>
</body>