Posted on 2006-10-12 10:19
my 閱讀(495)
評論(1) 編輯 收藏 所屬分類:
java Web
1.內部對象
1.1??out(向客戶端輸出各種數據類型)
重要方法:
? out.print(類型)??或??out.println(類型):換行輸出
? out.newLine():輸出一個換行符號
? out.flush():輸出緩沖區的數據
? out.close():關閉輸出流
? out.clearBuffer():清除緩沖區里的數據,并把數據寫到客戶端
? out.clear():清除緩沖區里的數據,但不把數據寫到客戶端
? out.getBufferSize():獲得緩沖區的大小,緩沖區的大小可用<%@page??buffer=”size”%>設置
? out.getRemaining():獲得緩沖區沒有使用的空間的大小
? out.isAutoFlush():返回布爾值,若auto??flush則返回true,否則返回false。是否auto??fush我們可用%@page??is??AutoFlush=”true/false”%來設置
注意:中文顯示問題
? 若是直接賦值的中文字符串,用<%@??page??contentType=”text/html;charset=gb2312”%>就可正常顯示。但不能用getStr(String??name)函數或類似的函數轉換內碼,否則不能正常顯示中文。
? 若是request傳過來的中文字符串,必須要用getStr(String??name)函數或類似的函數轉換內碼,否則不能正常顯示中文。
如:String??aa=str;
byte[]??aa=aa.getBytes(“ISO8859-1”);
String??bb=new??String(aa);
? 在不同平臺、不同的服務器jsp中文問題的解決方法各不相同,可自行試驗。
1.2??request(接受客戶端輸入的信息)
作用:主要用于接受客戶端通過http協議連接傳輸到服務器端的數據。
方法:
? getCookies():返回客戶端的cookie對象,結果是一個cookie數組
? getHeader(String??name):獲得http協議定義的傳送文件頭信息,
如:request.getHeader(“User-agent”)返回客戶端瀏覽器的版本號、類型
? getAttribute(String??name):返回name指定的屬性值,若不存在指定的屬性,就返回空值(null)。
? getattributeNames():返回request對象所有屬性的名字,結果集是一個Enumeration(枚舉)類的實例
? getHeaderNames():返回所有request??header的名字,結果集是一個Enumeration(枚舉)類的實例
? getHeaders(String??name):返回指定名字的request??header的所有值,結果集是一個Enumeration(枚舉)類的實例
? getMethod():獲得客戶端向服務器端傳送數據的方法有GET、POST、PUT等類型
? getParameter(String??name):獲得客戶端傳送給服務器端的參數值,該參數由name指定
? get??parameterNames():獲得客戶端傳送給服務器端的所有的參數名,結果集是一個Enumeration(枚舉)類的實例
? getParameterValues(String??name):獲得指定參數所有值
? getQueryString()獲得查詢字符串,該串由客戶端以GET方法向服務器端傳送
? getRequestURI():獲得發出請求字符串的客戶端地址
? getServletPath():獲得客戶端所請求的腳本文件的文件路徑
? setAttribute(String??name,Java.lang.Object??o):設定名字為name的request參數值,該值由Object類型的o指定
? getServerName():獲得服務器的名字
? getServerPort():獲得服務器的端口號
? getRemoteAddr():獲得客戶端的IP地址
? getRemoteHost():獲得客戶端電腦的名字,若失敗,則返回客戶端電腦的IP地址
? getProtocol():獲取客戶端向服務器端傳送數據所依據的協議名稱,如http/1.1
1.3??application(保存用戶信息)
作用:一旦創建,除非服務器關閉,否則將一直保持下去
application.setAttribute(“name”,val)
request.setAttribute(“name”,val)
方法:
? getAttribute(String??name):返回由name指定名字的application對象屬性的值,這是個Object對象
? getattributeNames():返回所有application對象屬性的名字,結果集是一個Enumeration(枚舉)類的實例
? getInitParameter(String??name):??返回application栽個屬性的初始值,此屬性由name指定
? getServerInfo():獲得當前版本Servlet編譯器的信息
? setAttribute(String??name,Object??object):用object來初始化某個屬性,該屬性由name指定
例:簡單計數器(E:\app\java\tomcat322\webapps\myjsp\??count.jsp)
1.4??response(控制http連接)
作用:向客戶端發送數據,如Cookie、HTTP文件關信息等。
方法:
? addCookie(Cookie??cookie):添加1個Cookie對象,用來保存客戶端的用戶信息。用request的getcookies()方法可獲得這個Cookie
如:<%??Cookie??mycookie=new??Cookie(“uname”,”wsr”);
response.addCookie(mycookie);
Cookie??delmycookie=new??cookie(“mycookie”,null);
delmycookie??.setMaxAge(0);
delmycookie??.setPath(/”);
response.addCookie(delmycookie);
%>
? addHeader(String??name,String??value):添加HTTP文件頭,該header將會傳到客戶端,若同名的header存在,原來的header會被覆蓋
? containsHeader(String??name):判斷指定名字的HTTP文件頭是否存在并返回布爾值
? sendError(int??sc):向客戶端發送錯誤信息,如:505:服務器內部錯誤;404:網頁找不到錯誤
如:response.sendError(response.SC_NO_CONTENT);
? setHeader(String??name,String??value):設定指定名字的HTTP文件頭的值,若該值存在,它將會被新值覆蓋
如1:讓網頁每隔5秒刷新一次
<%??response.setHeader(“Refresh”,”5”);%>
??????the??current??dateis:<%=new??Date()%>
如2:利用response對象設定HTTP頭
<%??response.setContentType(“Application/pdf”);
response.setHeader(“content-disposition”,”attachment;filename=\”syntax.pdf\””);
%>
? sendRedirect(“http://www.foo.com/path/error.html”):重定向功能
1.5??exception(處理異常和錯誤)??
作用:處理JSP文件在執行時所有發生的錯誤和異常。有3個內建方法。
注意:必須在<%@??page??isErrorPage=”true”%>的情況下才可以使用Exception對象
? getMessage():返回錯誤信息
? printStackTrace():以標準錯誤的形式輸出一個錯誤和錯誤的堆棧
? toString():以字符串的形式返回1個對異常的描述
1.6??session(保存用戶信息)
作用:分別保存每一個用戶的信息
session.putValue(“name”,val)
session.getValue(“name”)
注意
ssion中保存和檢索的信息不能是基本數據類型,而必須是JAVA的相應的Object對象。
方法:
? getAttribute(String??name):獲得指定名字的屬性,若該屬性不存在,將返回null
? getattributeNames():返回session對象中存儲的第一個屬性對象,結果集是一個Enumeration類的實例
? getCreationTime():返回該session對象創建的時間,以毫秒計,從1970年1月1日起
? getId():每生成一個session對象,服務器都會給其一個不會重復的編號,此方法返回當前session的編號
? getLastAccessedTime():返回當前session對象最后1次被操作的時間,返回自1970年1月1日起至今的毫秒數
? getMaxInactiveInterval():獲得session對象的生存時間
? removeAttribute(String??name):刪除指定的屬性(包括屬性名、屬性值)
? setAttribute(String??name,Java.lang.Object??value):設定指定名字的屬性值,并將其存儲在session對象中