JSP内建对象总结

        在面向对象编程中,对象就是指由当作完整实体的操作和数据组成的变量。
对象是基于特定模型的,在对象中客户使用对象的服务通过由一组方法或相关函数的接口访问对象的数据,然后客户端可以调用这些方法执行某中操作。
        JSP的内建对象有以下几种:request、response、 out、 session、 pagecontext、 application、 config、 page。

◆ Request[请求]对象

Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。

与request 相联系的是HttpServletRequest类。通过getParameter方法可以得到request参数,通过GET、POST、HEAD等方法可以得到request的类型,通过cookies、Referer等可以得到引入的HTTP头。

◆ Response[响应]对象

Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据发送到用户端的浏览器。

与Response相联系的是HttpServletResponse类。

◆ Out对象

Out对象用于向客户端输出数据。

◆ Session[工作]对象

Session对象用于分别保存每一个用户信息的对象,以便于跟踪用户的操作状态。

与Session相联系的是HttpSession类,Session是自动创建的。

注:不同的用户对应的Session对象一般是不相同的。

◆ pageContext对象

pageContext对象用于管理对属于JSP中特殊可见部分中已经命名对象的访问。JSP中的一个新类。

◆ Application[应用程序]对象

Application对象用于在多个程序中保存信息。用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。

与application相联系的是ServletContext类,通过使用getServletConfig().getContext()方法得到。一旦创建application对象,该对象将一直保持下去,直到服务器关闭为止。

注:每个用户的application对象都是相同的,每一个用户都共用同一个application对象。

◆ Config对象

Config对象用于配置处理JSP程序的句柄,而且只有在JSP页面范围内合法。

它是一个ServletConfig类的对象。

◆ Page对象

Page对象仅用于保存在脚本的语言不是JAVA时的时间,在JAVA中不很实用。

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 οnunlοad="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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值