JSP内置对象(一)初学者必看

来源:互联网 发布:谈谈你对java的理解 编辑:程序博客网 时间:2024/05/03 23:47
JSP的内置对象(一)
关键词: JSP    内置对象                                          

 

 1Out对象
       out对象主要功能是把结果输出到网页上。
       out对象的方法:
       out.println(String Contents)out.print(String Contents):输出Contents两者最大的差别在于println( )在输出的数据后面会自动加上换行符号,下一个输出语句将在下一行开始输出;而print( )在输出的数据后面不会加上换行符号,下一个输出语句将继续在本行输出。
       out.newLine():输出一个换行符号。

       out.clear():清除缓冲区里的数据,但不把数据写到客户端去。

       out.clearBuffer():清除缓冲区里的数据,并且把数据写到客户端去。
       out.getBufferSize():获取当前缓冲区的大小(KB)JSP的语法允许用户通过调用page 指令中的bufferbuffer="none|8kb|sizekb")属性调整缓冲区的大小,甚至允许用户关闭缓冲区。

       out.getRemaining():获取使用后还剩余的缓冲区的大小(KB)。 

       out.isAutoFlush():如果auto flush(若缓冲区满了,会自动清除),那么返回true;反之,如果不是auto flush(若缓冲区满了,不会自动清除,而会产生异常处理),则返回false。是否auto fush可以用<% @page AutoFlush="true|false"%>来设置。

       out.close():关闭输出流,清除所有的内容,从而可以强制终止当前页面的剩余部分向浏览器输出。

       例子:
       Out.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<html>
<head>
 <title>Out.jsp</title>
</head>
<body>
<h2>javax.servlet.jsp.JspWriter - out 对象</h2>
<%
     int BufferSize = out.getBufferSize();
     int Available = out.getRemaining();  
     int Used = BufferSize - Available;
%>
BufferSize : <%= BufferSize %><br>
Available : <%= Available %><br>
Used : <%= Used %><br>
</body>
</html>

       out对象一般只在Scriptlet内使用,这是因为JSP表达式是自动发送到输出流的,很少需要专门调用out来输出。

 2Request对象

       Request对象代表了客户端的请求信息(如请求的来源、cookies和请求相关的参数值等等),主要用于接受客户端通过HTTP协议传送给服务器端的数据。通过request 可以查看请求参数的配置情况(调用 getParameter来实现 )、请求的类型(比如GETPOSTHEAD等等)以及请求的HTTP 头(CookieReferer等等 )。Request对象实现的是javax.servlet.http.HttpServletRequest接口。

       Request对象的方法(分为四大类):
       ①能够储存和取得属性的方法
       void setAttribute(String name,Java.lang.Object value):设定name属性的值为value

       void removeAttribute(String name):移除name属性的值。

       Object getAttribute(String name):返回name属性的值。若不存在name属性,则返回null

       Enumeration getattributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。

       ※当 使 Object getAttribute(String name)取得 name ,它 java.lang.Object,因此,我们还必须根据name属性值的类型做转换类型(Casting)的工作。
       例如,若要取得String类型的Name属性时:
       String Name = (String)Sessio.getAttribute("Name");

       若要取得Integer类型的Year属性时:

       Integer Year = (Integer)session.getAttribute("Year");
       ②能够取得请求参数的方法

       String getParameter(String name):返回客户端传送给服务器端的某一个请求参数name的值。当请求参数name不存在时,则返回null

       String [] getParameterValues(String name):返回客户端传送给服务器端的某一个请求参数name所有值。当请求参数name不存在时,则返回null

       Enumeration getParameterNames( ):返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名不存在时,返回null

       Map getParameterMap( ):取得一个要求参数的 Map

       ③能够取得请求HTTP标头的方法

       Cookie[] getCookies( ):返回与客户端请求有关的cookie对象

       String getHeader(String name):返回一个String类型的数据,表示客户端发送到服务器端的头信息。

       int getIntHeader(String name):返回一个int类型的数据,表示客户端发送到服务器端的头信息中的某一个特定的信息。

       long getDateHeader(String name):返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。

       Enumeration getHeaders(String name):取得所有客户端发送到服务器端的头信息。
       Enumeration getHeaderNames():取得客户端发送到服务器端的所有头信息的名称。
       ④其他的方法
       String getServerName():获得服务器的名字。如果没有设定服务器名,则返回服务器IP地址。

       int getServerPort():获得服务器的端口号。

       String getRemoteAddr():获得客户端的IP地址。

       String getRemoteHost():获得客户端主机的名字。如果客户端电脑没有设定名字,则返回客户端电脑的IP地址。

       int getRemotePort():获得客户端主机的端口号。

       String getRemoteUser():获得用户名。

       String getMethod():获得客户端向服务器端传送数据的方法(GETPOSTPUT等)。

       String getProtocol():获得客户端向服务器端传送数据所依据的协议名称,如http/1.0http/1.1

       String getQueryString():获得查询字符串,该字符串由客户端以GET方法向服务器端传送。

       String getRequestURI():获得发出请求字符串的客户端URL

       void etCharacterEncoding(String encoding):设定编码格式,用来解决窗体传递中文的问题。
       HttpSession getSession(boolean create):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对象关联,那么当create变量为true时,则创建一个HttpSession对象并返回;反之,返回null
       Boolean isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false.
       String getServletPath():获得客户端所请求的脚本文件的文件路径。
       String getContextPath():返回环境路径。对于JSP来说,一般是当前Web应用程序的根目录。

       String getRequestedSessionId():获得客户端的 Session ID

       Boolean isRequestedSessionIdValid():返回一个指示客户端请求发送Session ID是否仍然有效的布尔值。

       Boolean isRequestedSessionIdFromCookie():返回一个指示客户端请求发送Session ID是否存在于Cookie中的布尔值。

       Boolean isRequestedSessionIdFromURL():返回一个指示客户端请求发送Session ID是否存在于URL中的布尔值。

       例子:
       Request.html
<html>
<head>
<title> Request.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>
<body>
<form action="Request.jsp" method="GET">
Name<input type="text" name="Name" size="20" maxlength="20"><br>
Number<input type="text" name="Number" size="20" maxlength="20"><br><br>
<input type="submit" value="传送">
</form>
</body>

</html>

       Request.jsp
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<html>
<head>
<title> Request.jsp</title>
</head>
<body>
<h2>javax.servlet.http.HttpServletRequest 接口所提供的方法</h2>
getParameter("Name")<%= request.getParameter("Name") %><br>
getParameter("Number")<%= request.getParameter("Number") %><br>
getAttribute("Name")<%= request.getAttribute("Name") %><br>
getAttribute("Number")<%= request.getAttribute("Number") %><br><br>
getAuthType( )<%= request.getAuthType() %><br>
getProtocol( )<%= request.getProtocol() %><br>
getMethod( )<%= request.getMethod() %><br>
getScheme( )<%= request.getScheme() %><br>
getContentType( )<%= request.getContentType() %><br>
getContentLength( )<%= request.getContentLength() %><br>
getCharacterEncoding( )<%= request.getCharacterEncoding() %><br>
getRequestedSessionId( )<%= request.getRequestedSessionId() %><b
getContextPath( )<%= request.getContextPath() %><br
getServletPath( )<%= request.getServletPath() %><br
getPathInfo( )<%= request.getPathInfo() %><br>
getRequestURI( )<%= request.getRequestURI() %><br>
getQueryString( )<%= request.getQueryString() %><br><br>
getRemoteAddr( )<%= request.getRemoteAddr() %><br>
getRemoteHost( )<%= request.getRemoteHost() %><br>
getRemoteUser( )<%= request.getRemoteUser() %><br>
getRemotePort( )<%= request.getRemotePort() %><br>
getServerName( )<%= request.getServerName() %><br>
getServerPort( )<%= request.getServerPort() %><br>
</body>
</html>
       Name的字段中输入 browserNumber字段中输入123456789,看看有什么结果。