Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2566433
  • 博文数量: 709
  • 博客积分: 12251
  • 博客等级: 上将
  • 技术积分: 7905
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-17 00:00
个人简介

实现有价值的IT服务

文章存档

2012年(7)

2011年(147)

2009年(3)

2008年(5)

2007年(74)

2006年(431)

2005年(42)

分类:

2005-11-22 20:30:55

JSP内建对象的概念

摘要:JSP内置对象
 
 
内置对象是不需要声明,直接可以在JSP中使用的对象,JSP有以下几种内置对象:

request

request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,

header, 和session数据的有用的方法。
response response表示HttpServletResponse对象,并提供了几个用于设置送回

浏览器的响应的方法(如cookies,头信息等)
out out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空

间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息
application applicaton

表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息
config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。
page page表示从该页面产生的一个servlet实例。

Servlet API中的几个对象
JSP提供了八个内部对象,而其中的五个内部对象对应于Servlet API中的七个对象,这也就使得我们正常理解并

熟练使用Servlet中的这七个对象显得尤其重要。这五个JSP的内部对象和Servlet API中的对象的对应关系是:
request对象对应于:javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest
response对象对应于:javax.servlet.http.HttpServletResponse和javax.servlet.ServletResponse
session对象对应于:javax.servlet.http.HttpSession
application对象对应于:javax.servlet.ServletContext
config对象对应于:javax.servlet.ServletConfig
javax.servlet.http.HttpServletRequest
这是一个接口,在我们提到接口之前,还是让我们来复习一下Java中接口的一个初步的解释:
接口在语法上与类相似,但是接口没有实例,使用接口,只是指定类必须做什么而不是如何做。
HttpServletRequest接口用来处理一个对Servlet的HTTP格式的请求信息。

javax.servlet.ServletRequest
这也是一个接口,这个接口定义一个Servlet引擎产生的对象,通过这个对象,Servlet可以获得客户端请求的数

据。这个对象通过读取请求体的数据提供包括参数的名称、值和属性以及输入流的所有数据。而javax.servlet.

http.HttpServletRequest也只是该接口的一个扩展,也就是说,该接口的所有方法也可以被javax.servlet.htt

p.HttpServletRequest所使用。

javax.servlet.http.HttpServletResponse接口
该接口用来描述一个返回到客户端的HTTP回应。

javax.servlet.ServletResponse接口
该接口用来定义一个Servlet引擎产生的对象,通过这个对象,Servlet对客户端的请求作出响应。这个响应应该

是一个MIME实体,可能是一个HTML页、图象数据或其他MIME的格式。javax.servlet.http.HttpServletResponse

接口是该接口的扩展。

javax.servlet.http.HttpSession接口
该接口用来描述一个session,至于什么是session我想在这里就没必要说了吧。

javax.servlet.ServletContext接口
该接口用来定义了一个Servlet的环境对象。也可是认为这是多个客户端共享的信息,它与session的区别在于应

用范围的不同,session只对应于一个用户。

javax.servlet.ServletConfig接口
该接口定义了一个对象,通过这个对象,Servlet引擎配置一个Servlet。每一个ServletConfig对象对应着一个

唯一的Servlet。

javax.servlet.http.Cookie类
这个类描述了一个cookie,cookie的作用其实与session很类似,只是cookie保存在客户端,session保存在服务

器端。

============================================

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]


Request Information




JSP Request Method:<%= request.getMethod() %>


Request URI:<%= request.getRequestURI() %>


Request Protocol:<%= request.getProtocol() %>


Servlet Path:<%= request.getServletPath() %>


Remote User:<%= request.getRemoteUser() %>


Remote Address:<%= request.getRemoteAddr() %>


Remote host:<%= request.getRemoteHost() %>


Path info:<%= request.getPathInfo() %>


Path translated:<%= request.getPathTranslated() %>


Query String:<%= request.getQueryString() %>


Content Length:<%= request.getContentLength() %>


Content Type:<%= request.getContentType() %>


Server Name:<%= request.getServerName() %>


Server Port:<%= request.getServerPort() %>


Authorization Scheme:<%= request.getAuthType() %>


The Browser you are using is <%= request.getHeader("User-Agent") %>




 

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" %>


定时刷新页面


本页用来说明response对象


当前时间为:
<% response.setHeader("refresh","10"); %>
<%
out.println(new Date());
%>

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对象中。
☉ isNew()
☉ setMaxInactiveInterval(int interval)



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" %>

<%
Integer i = (Integer)application.getAttribute("counter");
String name = (String)application.getAttribute("onlineName");
//StringBuffer total = new StringBuffer(name);
%>

<% out.println((String)session.getAttribute("username")); %>您好:




当前在线人数: <%= i %>




在线人总名册: <% out.println(name); %>


阅读(1343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~