Respone:響應(yīng)對(duì)象 session:會(huì)話對(duì)象 application:應(yīng)用程序?qū)ο? Out:輸出對(duì)象 Config:配置對(duì)象 Page:頁面對(duì)象 PageContext:頁面上下文對(duì)象 Exception:例外對(duì)象 request對(duì)象 request 對(duì)象是 javax.servlet.httpServletRequest類型的對(duì)象。該對(duì)象代表了客戶端的請(qǐng)求信息,主要用于接受通過HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。例如我們?cè)贔ORM表單中填寫的信息等,是最常用的對(duì)象。常用的方法有:getParameter、getAttribute,getParameterNames 和getParameterValues通過調(diào)用這幾個(gè)方法來獲取請(qǐng)求對(duì)象中所包含的參數(shù)的值。 getParameter(Strings) : 獲取表單提交的信息 String s = request.getParameter(“name”); getAttribute(Strings): 獲取指定屬性的值,如該屬性值不存在返回Null String s=request.getAttribute(“name”); setAttribute(String key,Object obj):設(shè)置指定名字參數(shù)值 Strings=request.setAttribute(“zhuo”,name); getPRotocol() :獲取客戶使用的協(xié)議 getServletPath() :獲取客戶提交信息的頁面 getMethod() :獲取客戶提交信息的方式 get或post String s = request.getMethod(); getHeader() :獲取HTTP頭文件中的accept、accept-encoding和host的值 String s = request.getHeader(“accept”); getRemoteAddr() :獲取客戶的ip地址 getServerHost() :獲取客戶機(jī)的名稱 getServerName() :獲取服務(wù)器名稱 getServerPort() :獲取服務(wù)器的商口號(hào) getPamameterNames():獲取客戶端提交的所有參數(shù)的名字 Enumeration enum = request.getParameterNames(); while(enum.hasMoreElements()){ String s = (String)enum.nextElement(); out.println(s); } getRequestURI():獲得發(fā)出請(qǐng)求字符串的客戶端地址。 getSession(Boolean create):返回和當(dāng)前客戶端請(qǐng)求相關(guān)聯(lián)的HttpSession對(duì)象。如果當(dāng)前客戶端請(qǐng)求沒有和任何HttpSession對(duì)象關(guān)聯(lián),那么如果create變量為true,則創(chuàng)建一個(gè)HttpSession對(duì)象并返回,反之返回null。一般與setArribute連用,例如:request.getSession().setAttribute(“zhuo”,name); getQuertString():返回查詢字符串,該字符串由客戶端以get方法向服務(wù)器端傳送。查詢字符串出現(xiàn)在頁面請(qǐng)求“ ”的后面,例如: name=Jack。 getContentType():獲取客戶端請(qǐng)求的MIME類型。如果無法得到該請(qǐng)求的MIME類型,則返回-1。 session對(duì)象 在頁面的page指令加上session=”true” 或缺省 情況下以及在servlet中使用request.getSession();的方式進(jìn)行創(chuàng)建。超時(shí)或服務(wù)停止時(shí),session結(jié)束。(一個(gè)用戶對(duì)應(yīng)一個(gè)session對(duì)象) 什么是session對(duì)象? —– 它是一個(gè)jsp內(nèi)置對(duì)象,它在第一個(gè)jsp被裝載時(shí)自動(dòng)創(chuàng)建,完成會(huì)話期管理。從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離 開這個(gè)服務(wù)器結(jié)束(或者超時(shí)),被稱為一個(gè)會(huì)話。當(dāng)一個(gè)客戶訪問一個(gè)服務(wù)器時(shí),可能會(huì)在這個(gè)服務(wù)器的幾個(gè)頁面之間切換,服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是一個(gè)客戶,就需要?jiǎng)?chuàng)建session對(duì)象。 session對(duì)象的ID —–當(dāng)一個(gè)客戶首次訪問服務(wù)器上的一個(gè)jsp頁面時(shí),jsp引擎會(huì)產(chǎn)生一個(gè)session對(duì)象,同時(shí)分配一個(gè)String類型的的ID號(hào),jsp引擎同時(shí)將這個(gè)ID號(hào)發(fā)送到客戶端,存放在cookie中,這樣,session對(duì)象直到客戶關(guān)閉瀏覽器后,服務(wù)器端,該客戶的session對(duì)象才會(huì)消失,會(huì)并,和客戶的會(huì)話對(duì)應(yīng)關(guān)系消失。當(dāng)客戶重新打開瀏覽器再連接到該服務(wù)器時(shí),服務(wù)器為該客戶再創(chuàng)建一個(gè)新的session對(duì)象。 getAttribute(String name):獲得指定名字的屬性,如果該屬性不存在,將會(huì)返回null。 getAttributeNames():返回session對(duì)象中存儲(chǔ)的每一個(gè)屬性對(duì)象,結(jié)果集是一個(gè)Enumeration類的實(shí)例。 getCreationTime():返回session對(duì)象被創(chuàng)建的時(shí)間,單位為毫秒。 getId():返回session對(duì)象在服務(wù)器端的編號(hào)。每生成一個(gè)session對(duì)象,服務(wù)器都會(huì)給它一個(gè)編號(hào),而且這個(gè)編號(hào)不會(huì)重復(fù),這樣服務(wù)器才能根據(jù)編號(hào)來識(shí)別session,并且正確地處理某一特定的session及其提供的服務(wù)。 getLastaccessedTime():返回當(dāng)前session對(duì)象最后一次被操作的時(shí)間,單位為毫秒。 getMaxInactiveInterval ():獲取sessionn對(duì)象的生存時(shí)間,單位為秒。 setMaxInactiveInterval (int interval):設(shè)置session對(duì)象的有效時(shí)間(超時(shí)時(shí)間),單位為秒。在網(wǎng)站的實(shí)際應(yīng)用中。 例如:設(shè)置有效時(shí)間為200秒。 <%session.setMaxInactiveInterval(200);%> removeAttribute(String name):刪除指定屬性的屬性值和屬性名。 setAttribute(String name,Java.lang.Object value):設(shè)定指定名字的屬性,并且把它存儲(chǔ)在session對(duì)象中。 invalidate():注銷當(dāng)前的session對(duì)象。 respone對(duì)象 對(duì)客戶的請(qǐng)求做出動(dòng)態(tài)響應(yīng),向客戶端發(fā)送數(shù)據(jù)。響應(yīng)客戶請(qǐng)求時(shí)創(chuàng)建,響應(yīng)結(jié)束時(shí)銷毀。(一次響應(yīng)產(chǎn)生一個(gè)response對(duì)象) setRedirect(url):把響應(yīng)發(fā)送到另一個(gè)指定的頁面(url)進(jìn)行處理。這是最常用的一個(gè)方法 sendError(int sc):向客戶端發(fā)送錯(cuò)誤信息。例如:“505指示服務(wù)器內(nèi)部錯(cuò)誤”, “404指示網(wǎng)頁找不到的錯(cuò)誤” addHeader(String name,String value):添加http頭文件,該Header將會(huì)傳到客戶端去,如果有同名的Header存在,那么原來的Header會(huì)被覆蓋。 setHeader(String name,String value):設(shè)定指定名字的http文件頭的值,如果該值存在,那么它將會(huì)被新的值覆蓋。 containsHeader(String name):判斷指定名字的http文件頭是否存在,并返回布爾值。 flushBuffer():強(qiáng)制將當(dāng)前緩沖區(qū)的內(nèi)容發(fā)送到客戶端。 addCookie(Cookie cookie):添加一個(gè)Cookie對(duì)象,用來保存客戶端的用戶信息,可以用request對(duì)象的getCookies()方法獲得這個(gè)Cookie。 out對(duì)象 Out對(duì)象是一個(gè)輸出流,用來向客戶端輸出數(shù)據(jù),就是現(xiàn)實(shí)在瀏覽器的頁面上,out對(duì)象用于各種數(shù)據(jù)的輸出 最常用的為out.print()和out.println()用來輸出各種類型的數(shù)據(jù) out.close();關(guān)閉流 out.getBufferSize();獲得當(dāng)前緩存區(qū)大小可以用下面的語句 out.getRemaining();要獲得剩余緩存區(qū)大小。 config對(duì)象 config對(duì)象是ServletConfig類的一個(gè)對(duì)象,存放著一些Servlet初始化信息,且只有在JSP頁面范圍內(nèi)才有效。當(dāng)一個(gè)servlet初始化時(shí),容器把某些信息通過此對(duì)象傳遞給servlet其常用方法如下: getInitParameter(name):取得指定名字的Servlet初始化參數(shù)值。 getInitParameterNames():取得Servlet初始化參數(shù)列表,返回一個(gè)枚舉實(shí)例。 getServletContext():取得Servlet上下文(ServletContext)。 getServletName():取得生成的Servlet的名字。 pageContext對(duì)象 pageContext對(duì)象提供存取所有關(guān)于jsp程序執(zhí)行時(shí)期所要用到的屬性方法,她被封裝成java.servlet.jsp.pageContext接口,它的創(chuàng)建和初始化都是容器來完成的,jsp頁面里可以直接使用pageContext對(duì)象的句柄,pageContext對(duì)象的getXXX()、setXXX()和findXXX()方法可以用來根據(jù)不同的對(duì)象范圍實(shí)現(xiàn)對(duì)這些對(duì)象的管理 getAttribute():返回與指定范圍內(nèi)名稱有關(guān)的變量或null,例如: forward(String relativeUrlPath):把頁面重定向到另一個(gè)頁面或者Servlet組件上。 findAttribute():用來按照頁面請(qǐng)求、會(huì)話以及應(yīng)用程序范圍的順序?qū)崿F(xiàn)對(duì)某個(gè)已經(jīng)命名屬性的搜索。 getException():返回當(dāng)前的exception對(duì)象。 setAttribute():用來設(shè)置默認(rèn)頁面的范圍或者指定范圍之中的已命名對(duì)象。 removeAttribute():用來刪除默認(rèn)頁面范圍或指定范圍之中已命名的對(duì)象。 page對(duì)象 page對(duì)象代表JSP頁面本身,只是this引用的一個(gè)代名詞。對(duì)JSP頁面創(chuàng)建者通常不可訪問,所以一般很少用到該對(duì)象。 exception對(duì)象 要使用exception對(duì)象,則頁面的isErrorPage必須指明為true。在Java中利用明為try/catch的關(guān)鍵字來處理異常情況,如果在JSP頁面中沒有捕捉到的異常,就會(huì)生成exception對(duì)象,并把這個(gè)exception對(duì)象傳送到在page指令中設(shè)定的錯(cuò)誤頁面中,然后在錯(cuò)誤提示頁面中處理相應(yīng)的exception對(duì)象 getMessage():獲取異常消息字符串 getLocalizeMessage():獲取本地化語言的異常錯(cuò)誤 printStackTrace():顯示異常的棧跟蹤軌跡 toString():返回關(guān)于異常錯(cuò)誤的簡單消息描述 fillInStackTrace():重寫異常錯(cuò)誤的棧執(zhí)行軌跡 application對(duì)象 Application對(duì)象是用力保存java web應(yīng)用程序中的使用的變量,所有用戶不論何時(shí)皆可存取使用這些變量。Application對(duì)象最大的特點(diǎn)是沒有所謂的生命周期的。生命周期是指客戶端的瀏覽器是否被關(guān)閉,application對(duì)象都存在于主機(jī)上。直到服務(wù)器關(guān)閉后,application對(duì)象才失效。 getAttribute(String name):返回由name指定名字的application對(duì)象的屬性的值。返回值是一個(gè)Object對(duì)象,如果沒有,則返回null。 getAttributeNames():返回所有application對(duì)象屬性的名字,結(jié)果集是一Enumeration類型的實(shí)例。 getInitParameter(String name):返回由name指定名字的application對(duì)象的某個(gè)屬性的初始值,如果沒有參數(shù),就返回null。 getServerInfo():返回Servlet編譯器當(dāng)前版本的信息。 setAttribute(String name, Object obj):將參數(shù)Object指定的對(duì)象obj添加到application對(duì)象中,并為添加的對(duì)象指定一個(gè)屬性。 removeAttribute(String name):刪除一個(gè)指定的屬性。 request、session對(duì)象和application是有區(qū)別的,一次請(qǐng)求代表了一個(gè)request對(duì)象,一個(gè)客戶端對(duì)應(yīng)一個(gè)session對(duì)象,就是多個(gè)頁面之間可以共享;而application對(duì)象,為多個(gè)應(yīng)用程序保存信息,就是多個(gè)瀏覽器都是共享這個(gè)對(duì)象的。 request、session和application的區(qū)別演示。 首先建立項(xiàng)目Application_Session_Request。在項(xiàng)目中建立一個(gè)如下的JSP頁面first.jsp,用于用這三個(gè)對(duì)象保存數(shù)據(jù)。 <%@ page language = “java” pageEncoding = “gb2312”%>< html>< body> <% request.setAttribute(“request”,”保存在Request中的內(nèi)容”); session.setAttribute(“session”,”保存在Session中的內(nèi)容”); application.setAttribute(“application”,”保存在Application中的內(nèi)容”); %> < /body>< /html>
然后再建立另一個(gè)JSP頁面second.jsp,用于獲取這三個(gè)對(duì)象保存的值。 <%@ page language=”java” pageEncoding=”gb2312”%>< html> < /head>< body> <% out.println(“request:”+(String)request.getAttribute(“request”)+”
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注