亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP Servlet中Request與Response所有成員方法的研究

2019-11-14 22:27:48
字體:
來源:轉載
供稿:網友
jsp Servlet中Request與Response所有成員方法的研究

  HttpServletRequest與HttpServletResponse作為Servlet中doGet、doPost等方法中傳遞的參數,承接了Http請求與響應中的大部分功能,請求的解析與響應的返回都需要靠這兩個對象進行,他們中的所有方法及功能在下邊總結了一下,希望能對學習java Web開發有所幫助。

  1、HttpServletRequest:

    /*     * 記錄各個request.get的值     * request.getAsyncContext();AsyncContext     * 獲取異步傳輸的文本內容     * request.getAttribute(String);Object     * Attribute與Parameter不同,Attr是在程序里用SetA設置進去的,而Par是接收網頁的參數     * 多用于session的設值,session.setA,可以設置自己的類型,getP只能接收String,而getA可以為object     * request.getAttributeNames();Enumeration<String>     * 獲取一個枚舉類型,hasmoreelement,nextelement     * request.getAuthType();String     * 返回身份驗證方法的名稱,basic,SSL,form,client_cert和digest,若沒有身份驗證則為null     * AuthType可在web.xml中配置,使用<login-config><auth-method>xx<real-name>xxx來配置     * 一般用于遠程網頁鏈接,即輸入網頁地址,彈出一個登陸界面,那里的時候才會用     * 讀取文件頭中的Authorization信息     * request.getCharacterEncoding();String     * 返回網頁使用的編碼,在網頁的charset中的值     * request.getContentLength();int     * 只用于POST請求,表示所發送數據的字節數     * request.getContentLengthLong();long     * 同上,用于數據量非常大時,long八個字節     * request.getContentType();String     * 獲取content-type,包括編碼。<meta content="text/html; charset=gb2312" http-equiv="Content-Type"/>     * Content-Type,用于定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件     * request.getContextPath();String     * 獲取項目的根目錄名,如本項目應該是/MyTestWeb。返回指定servlet上下文(web應用)的URL的前綴。     * 用絕對路徑時,可以使用getRealPath()(不推薦),request.getSession().getServletContext().getRealPath("/")     * request.getCookies();Cookie[]     * 很明顯,返回網頁的cookies,數組形式cookie是名稱+值的形式保存的     * request.getDateHeader("String");long     * 用于將指定頭信息的部分轉換成方便轉換為時間類型的長整數型,簡化getHeaders     * request.getDispatcherType();DispatcherType     * 未知...     * request.getHeader("headname");String     * 獲取指定頭信息     * request.getHeaderNames();Enumeration<String>     * 獲取名字的枚舉,用于遍歷     * request.getHeaders("headersname");Enumeration<String>     * 獲取一個name的多個值序列,返回請求給出的指定類型的所有HTTP頭標的名稱的枚舉值,它對具有多取值的頭標非常有用。     * request.getInputStream();ServletInputStream繼承自io.InputStream     * 獲取請求內容,可以獲取post方法在網頁中通過send傳遞的內容,但是要通過InputStreamReader實例化     * 同時InputStreamReader也不能直接被讀取為字符串,要使用BufferedReader實例化InputStreamReader     * 之后就可以使用BufferedReader的readline來獲取中間的數據了。     * 或者直接使用InputStream的read方法寫給read的參數,byte數組     * 該方法只能讀取一次,因為是流,所以讀完就沒了     * request.getIntHeader("head");int     * 從頭內容獲取數值     * request.getLocalAddr();String     * 獲取本地地址,根據訪問方法不同而不同,為127.0.0.1或者公網ip     * request.getLocale();Locale(util中)     * 獲取本地位置信息,若ZHCN等等     * request.getLocales();Enumeration<Locale>     * 有多個位置信息時獲取枚舉     * request.getLocalName();String     * 獲取本地IP的名稱,如127.0.0.1就是localhost     * request.getLocalPort();int     * 獲取端口號,本應用就是8081     * request.getMethod();String     * 獲取Http方法,有get,head,put,delete,post,options     * request.getParameter("code");String     * 獲取提交參數,即網址?后面的內容,一一對應關系。即便是POST,這個也只能獲?。亢竺娴膮?    * POST與GET的不同是可以send里面寫內容,網址里面傳遞的參數還是一樣的     * request.getParameterMap();Map<String,String[]>     * 返回類型是String[]的原因是參數名稱有可能相同,如果用getPara返回同名參數多個值的會把各個值結合起來     * PS:遍歷Map的方法,Set<Entry<String, String[]>> set = map.entrySet();先獲取EntrySet     * 然后獲取EntrySet的迭代器Iterator<Entry<String, String[]>> it = set.iterator();     * 接著使用迭代的getNext來獲取各個元素Entry<String, String[]> entry = it.next();     * 最后使用Entry.getvalue獲取字符串數組     * request.getParameterNames();Enumeration<String>     * 獲取參數名的枚舉     * request.getParameterValues("code");String[]     * 獲取同名參數的多個值     * request.getPart("file");Part     * 用于上傳文件,一個Part為一個文件,mime類型為multipart/form-data     * 程序中需要添加@MultipartConfig注解     * request.getParts();Collection<Part>     * 獲取一個Part的集合,用于上傳多個文件     * request.getPathInfo();String     * 返回在URL中指定的任意附加路徑信息。不帶參數,一般是相對于Servlet的路徑     * pathinfo返回的字符串是經過Servlet服務器URL Decode過的。     * 輸出:URL中Servlet路徑之后、查詢字符串之前的那部分。     * request.getPathTranslated();String     * 映射到服務器實際路徑之后的路徑信息。     * request.getPRotocol();String     * 獲取協議信息和版本號,即HTTP/1.1     * request.getQueryString();String     * 這是字符串形式的附加到URL后面的查詢字符串,數據仍舊是URL編碼的。     * 在Servlet中很少需要用到未經解碼的數據,一般使用getParameter訪問各個參數。     * request.getReader();BufferedReader     * 獲取BufferedReader,和inputStream那一大堆獲取的內容一樣。。。     * request.getRealPath("/");String     * 獲取絕對路徑,被廢棄了,請使用request.getSession().getServletContext().getRealPath("/")     * request.getRemoteAddr();String     * 客戶端的IP     * request.getRemoteHost();String     * 客戶端的主機名     * request.getRemotePort();int     * 客戶端的端口號     * request.getRemoteUser();String     * 客戶端的用戶名     * request.getRequestDispatcher("");RequestDispatcher     * 請求轉發,獲取請求過來的地址,與該地址共享一個Request     * request.getRequestedSessionId();String     * 返回這個請求相應的session id     * request.getRequestURI();String     * 獲得請求URL,不包含請求內容,不包含域名     * request.getRequestURL();StringBuffer     * 獲取URL,包含域名,不包含請求內容     * 未被Servlet服務器URL Decode過。     * request.getScheme();String     * 返回協議名稱,http     * request.getServerName();String     * 獲得服務器名,本地IP     * request.getServerPort();int     * 獲取服務器端口號     * request.getServletContext();ServletContext     * 獲取該Servlet的相關信息,getServletConfig().getServletContext().getServerInfo()     * request.getServletPath();String     * URL中調用Servlet的那一部分,不包含附加路徑信息和查詢字符串。     * request.getSession();HttpSession     * 獲取Session對話,用于與網頁通信,很有用     * equest.getSession(boolean);HttpSession     * request.getSession(true):若存在會話則返回該會話,否則新建一個會話。     * request.getSession(false):若存在會話則返回該會話,否則返回NULL     * request.getUserPrincipal();Principal     * 返回一個java.security.Principal  對象,該對象包含當前授權用戶的名稱     * 使用request.getUserPrincipal().getName()得到用戶名     * 沒有通過認證就沒有返回值,是用戶登錄后才有值的,通過了JAAS認證,也就是登錄     *      * request.authenticate(HttpServletResponse response);boolean     * 證明是真實的、可靠的或有效的;鑒定,使生效     * request.changeSessionId();String     * Change the session id of the current session associated with this request and return the new session id.     * request.isAsyncStarted();boolean     * 異步傳輸是否開始     * request.isAsyncSupported();boolean     * 是否支持異步傳輸     * isRequestedSessionIdFromCookie();boolean     * SessionId是否是從cookies中獲得的     * request.isRequestedSessionIdFromUrl();boolean     * SessionId是否是從URL中獲取的,已廢棄     * request.isRequestedSessionIdFromURL();boolean     * 同上,這個沒廢棄     * request.isRequestedSessionIdValid();boolean     * 檢查SessionId是否是有效的     * request.isSecure();boolean     * 是否是安全的,即是否使用了安全協議,如https     * request.isUserInRole("role");boolean     * 判斷用戶是否是某個種類的角色,類型可以在web.xml中配置(tomcat-users.xml)     * request.login("user", "passWord");void     * 使用用戶名和密碼進行登錄     * request.logout();void     * 用戶登出     * request.notify();request.notifyAll();void     * 用于線程操作,詳細見教材     * request.removeAttribute("at");void     * 刪除某個屬性值,對應set     * request.setAttribute("at", request);void     * 設置某個屬性值     * request.setCharacterEncoding("utf-8");void     * 設置獲取各個字符時使用的編碼方式,應與網頁的編碼方式一樣     * 僅僅只適用于設置post提交的request body的編碼而不是設置get方法提交的queryString的編碼。     * 該方法告訴應用服務器應該采用什么編碼解析post傳過來的內容。     * request.startAsync(request, response);void     * 開始異步傳輸,可以不帶參數     * request.upgrade();void     * 開始更新?     * request.wait(12);     * 實現了線程的類都有該方法,用于等待     */

  2、HttpServletResponse

/*     * response對象     * response.addCookie(new Cookie("a","aa"));void     * 增加cookie     * response.addDateHeader("date", 23456789l);void     * 在頭部增加日期     * response.addHeader("asf", "sff");void     * 增加頭部信息     * response.addIntHeader("fsf", 12);void     * 在頭部增加數值類型     * response.encodeRedirectUrl("utf-8");廢棄     * response.encodeRedirectURL("utf-8");String     * 通過指定的編碼對URL進項編碼,并攜帶sessionid,跨應用     * response.encodeUrl("utf-8");廢棄     * response.encodeURL("utf-8");String     * 通過指定的編碼對URL進項編碼,并攜帶sessionid,本應用     * 假如有sessionId,且不是從cookie中獲得的,就放到url尾部,否則直接返回原url。     * response.flushBuffer();vodi     * 立即發送緩沖區字符給客戶端即瀏覽器     * response.getBufferSize();int     * 獲取緩沖區大小     * response.getCharacterEncoding();String     * 獲取編碼類型     * response.getContentType();String     * 獲取Content的MIME類型和編碼     * response.getHeaderNames();Collection<String>     * 獲取所有Header的name列表     * response.getHeaders("aa");Collection<String>     * 獲取所有aa的頭的值列表     * response.getLocale();Locale     * 獲取本地信息,如zhcn     * response.getOutputStream();ServletOutputStream繼承自OutputStream     * 獲取輸出流,和inputStream對應,bufferedReader和printWriter對應     * response.getStatus();int     * 獲取response的狀態碼,有200,301,404,500     * response.getWriter();PrintWriter     * 獲取一個PrintWriter,用于向response返回數據,從而向客戶端返回數據,比Stream使用方便     * response.isCommitted();boolean     * 調用PrintWriter對象的close()方法關閉底層輸出流,方法在關閉輸出流之前會先把緩沖區內的數據提交到客戶端。     * 因此在調用PrintWriter 對象的 close()方法之前,response.isCommitted()方法返回 false;     * 而在調用PrintWriter對象的close()方法之后,response.isCommitted()方法返回true。     * response.reset();void     * 清除buffer,設置頁面不緩存,同時清除狀態碼和頭,如果已經發送數據則跑出異常     * response.resetBuffer();void     * 只清除buffer     * response.sendError(1,"123");void     * response.sendError(123);     * response.sendError(1,"123");     * setStatus方法用來設置Servlet向客戶端返回的狀態碼,它用來設置沒有出錯的狀態。     * 如果Servlet運行出錯,Servlet可以使用sendError方法設置狀態碼,     * 如sendError(int sc)方法設置錯誤狀態代碼。sendError(int sc,String msg)方法除了設置狀態碼     * 還向客戶發出一條錯誤信息。     * response.sendRedirect("xx.html");     * 返回一個重定向,并把新的request與response交給重定向的頁面進行處理     * sendRedirect方法向客戶發出臨時重新導向的響應。它生成的響應狀態碼為302。     * 該響應給了客戶一個新的URL分區。如果緩沖器已經被清空,這個方法會彈出一個IllegalStateException例外。     * response.setBufferSize(123);     * 設置緩沖區大小     * response.setCharacterEncoding("utf-8");     * 設置字符編碼     * response.setContentLength(123);     * 設置返回內容的長度,在header中也有     * response.setContentLengthLong(1345l);     * 長度非常長是使用     * response.setContentType("dfd");     * 設置ContentType,包括編碼和類型信息     * 網頁的Http頭中ContentType("text/html; charset=GBK")的作用:     * 告訴瀏覽器網頁中數據是什么編碼/     * 表單提交時,通常瀏覽器會根據ContentType指定的charset對表單中的數據編碼,然后發送給服務器的。     * 這里需要注意的是:這里所說的ContentType是指http頭的ContentType,而不是在網頁中meta中的ContentType。     * response.setDateHeader("asd", 123l);     * 修改日期頭     * response.setHeader("sfds", "sdfsdf");     * 修改頭     * response.setIntHeader("sf", 3123);     * 設置數值頭     * response.setLocale(locale );     * 設置本地環境     * response.setStatus(1);     * 設置Http狀態碼,為出錯的情況用     * response.setStatus(12, "dasd");     * 設置狀態碼并帶一條消息     *      *      *      */

  3、用于測試的代碼

        AsyncContext async = request.getAsyncContext();        String attribute = (String) request.getAttribute("code");        Enumeration<String> enumer = request.getAttributeNames();        String authtype = request.getAuthType();        String character = request.getCharacterEncoding();        int len = request.getContentLength();        long lenl = request.getContentLengthLong();        String contenttype = request.getContentType();        String contextpath = request.getContextPath();        Cookie[] cook = request.getCookies();        long dataHeader = request.getDateHeader("");        DispatcherType dispatcher = request.getDispatcherType();        String header = request.getHeader("headname");        Enumeration<String> headernames = request.getHeaderNames();        Enumeration<String> headersname = request.getHeaders("headersname");        ServletInputStream ins = request.getInputStream();        int i = request.getIntHeader("head");        String add = request.getLocalAddr();        Locale locale = request.getLocale();        Enumeration<Locale> locales = request.getLocales();        String localname = request.getLocalName();        int port = request.getLocalPort();        String method = request.getMethod();        String codep = request.getParameter("code");        Map<String,String[]> map = request.getParameterMap();        Enumeration<String> Pnames = request.getParameterNames();        String[] values = request.getParameterValues("code");        Part pa = request.getPart("file");        Collection<Part> pas = request.getParts();        String pathin = request.getPathInfo();        String trans = request.getPathTranslated();        String protoc = request.getProtocol();        String query = request.getQueryString();        BufferedReader br = request.getReader();        String rp = request.getRealPath("/");        String ra = request.getRemoteAddr();        String rh = request.getRemoteHost();        int rport = request.getRemotePort();        String ru = request.getRemoteUser();        RequestDispatcher rd = request.getRequestDispatcher("");        String rsi = request.getRequestedSessionId();        String uri = request.getRequestURI();        String scheme = request.getScheme();        String servern = request.getServerName();        int sport = request.getServerPort();        ServletContext scon = request.getServletContext();        String spath = request.getServletPath();        HttpSession session1 = request.getSession();        HttpSession session2 = request.getSession(true);        Principal prc = request.getUserPrincipal();                boolean authe = request.authenticate(response);//證明是真實的、可靠的或有效的;鑒定,使生效        String cs = request.changeSessionId();        boolean iss = request.isAsyncStarted();        boolean isss = request.isAsyncSupported();        boolean issr = request.isRequestedSessionIdFromCookie();        boolean irsi = request.isRequestedSessionIdFromUrl();        boolean irss = request.isRequestedSessionIdFromURL();        boolean isiv = request.isRequestedSessionIdValid();        boolean isivs = request.isSecure();        boolean isr = request.isUserInRole("role");        request.login("user", "password");        request.logout();        request.notify();        request.notifyAll();        request.removeAttribute("at");        request.setAttribute("at", request);        request.setCharacterEncoding("utf-8");        request.startAsync();        request.startAsync(request, response);        //request.upgrade();                response.addCookie(new Cookie("a","aa"));        response.addDateHeader("date", 23456789l);        response.addHeader("asf", "sff");        response.addIntHeader("fsf", 12);        boolean ch = response.containsHeader("asf");        String eru = response.encodeRedirectUrl("utf-8");        String eru1 = response.encodeRedirectURL("utf-8");        String eu = response.encodeUrl("utf-8");        String eu1 = response.encodeURL("utf-8");        response.flushBuffer();        int bs = response.getBufferSize();        String ge = response.getCharacterEncoding();        String cont = response.getContentType();        String se = response.getHeader("aa");        Collection<String> ghn = response.getHeaderNames();        Collection<String> ghn1 = response.getHeaders("aa");        Locale sss = response.getLocale();        ServletOutputStream ost = response.getOutputStream();        int rs = response.getStatus();        PrintWriter writer1 = response.getWriter();        boolean isc = response.isCommitted();        response.reset();        response.resetBuffer();        response.sendError(1,"123");        response.sendError(123);        response.sendRedirect("xx.html");        response.setBufferSize(123);        response.setCharacterEncoding("utf-8");        response.setContentLength(123);        response.setContentLengthLong(1345l);        response.setContentType("dfd");        response.setDateHeader("asd", 123l);        response.setHeader("sfds", "sdfsdf");        response.setIntHeader("sf", 3123);        response.setLocale(locale );        response.setStatus(1);        response.setStatus(12, "dasd");

  上面的內容只是作為總結,并沒有說明各個方法的作用以及取出來的對象的作用,比如說Session,是一個很有用的對象,要知道他的用法,請看后面的博文。

  關于Http客戶端,即瀏覽器發送請求及接受響應的各部分內容,請參考后面的博文。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品igao视频| 日韩在线精品视频| 亚洲国模精品私拍| 日韩高清免费观看| 亚洲男人天堂网站| 姬川优奈aav一区二区| 久久久国产在线视频| 国产精品久久久久久久久久三级| 久久久精品2019中文字幕神马| 91在线中文字幕| 国模视频一区二区| 亚洲免费影视第一页| 欧美一区二区三区艳史| 亚洲一区二区精品| 亚洲精品98久久久久久中文字幕| 国产精品激情av在线播放| 国产精品久久久久免费a∨大胸| 亚洲变态欧美另类捆绑| 日韩电影免费在线观看| 欧美精品激情视频| 亚洲国产天堂久久综合网| 高清视频欧美一级| 色狠狠久久aa北条麻妃| 欧美日韩999| 国产成人精品日本亚洲| 国产精品国产自产拍高清av水多| 色噜噜国产精品视频一区二区| 国产成人精品在线观看| 日韩av网站导航| 日韩成人久久久| 在线视频免费一区二区| 国产一区av在线| 国产精品久久久久不卡| 国产精品福利观看| 热久久美女精品天天吊色| 成人信息集中地欧美| 国产精品美女无圣光视频| 狠狠色香婷婷久久亚洲精品| 欧美在线不卡区| 欧美黑人狂野猛交老妇| 欧美日韩在线第一页| 国产日韩欧美视频在线| 国产成+人+综合+亚洲欧洲| 久久国产精品久久久| 欧美电影院免费观看| 亚洲国产精品一区二区三区| 一区二区在线视频播放| 91伊人影院在线播放| 欧美洲成人男女午夜视频| 国产精品女人久久久久久| 日本精品视频在线观看| 性欧美视频videos6一9| 欧美大成色www永久网站婷| 精品久久久久久国产| 97精品在线观看| 久久久天堂国产精品女人| 成人免费自拍视频| 国产aⅴ夜夜欢一区二区三区| 久久91亚洲精品中文字幕奶水| 亚洲韩国日本中文字幕| 精品福利免费观看| 欧美日韩国产丝袜另类| 奇门遁甲1982国语版免费观看高清| 久久久久久香蕉网| 久久久精品在线| 亚洲无线码在线一区观看| 亚洲自拍小视频| 精品欧美aⅴ在线网站| www.日韩免费| 国产成人精品av在线| 亚洲一区二区三区在线免费观看| 亚洲另类图片色| 中文字幕亚洲一区二区三区五十路| 日韩一中文字幕| 欧美性受xxxx白人性爽| 国产精品第1页| 亚洲国产精品电影| 色哟哟网站入口亚洲精品| 午夜美女久久久久爽久久| 一本一本久久a久久精品综合小说| 亚洲男人av电影| 国产手机视频精品| 日韩精品久久久久久久玫瑰园| 亚洲va电影大全| 久久国产天堂福利天堂| 亚洲国产日韩欧美在线图片| 亚洲精品一区中文字幕乱码| 91影视免费在线观看| 亚洲一区二区久久久| 国精产品一区一区三区有限在线| 精品国产拍在线观看| 亚洲高清在线观看| 青青草国产精品一区二区| 高清日韩电视剧大全免费播放在线观看| 国产精欧美一区二区三区| 久久精品国产91精品亚洲| 国产色视频一区| 亚洲欧洲在线播放| 亚洲最大的av网站| 亚洲激情视频网站| 夜夜嗨av一区二区三区免费区| 日韩va亚洲va欧洲va国产| 色综合久久中文字幕综合网小说| 国产亚洲精品一区二555| 国内精品在线一区| 亚洲国产美女精品久久久久∴| 日本成人免费在线| 伊人一区二区三区久久精品| 国产亚洲激情在线| 国产成人精品一区二区三区| 亚洲va欧美va在线观看| 欧美国产日韩精品| 久久精品国产精品| 亚洲国产99精品国自产| 欧美日韩在线看| 成人欧美一区二区三区在线| 中文字幕在线看视频国产欧美| 国产精品色视频| 国产狼人综合免费视频| 日韩在线视频中文字幕| 欧美日韩另类视频| 国模吧一区二区三区| 久久视频在线看| 亚洲天堂网在线观看| 国产精品一区电影| 亚洲欧美三级在线| 久久中文久久字幕| 欧美中文在线观看国产| 亚洲一区中文字幕在线观看| 亚洲精品suv精品一区二区| 国产97人人超碰caoprom| 久久久久成人精品| 国产精品久久久久99| 亚洲视频在线免费观看| 亚洲的天堂在线中文字幕| 成人网在线免费观看| 主播福利视频一区| 大伊人狠狠躁夜夜躁av一区| 国产精品日韩久久久久| 97avcom| 亚洲色图五月天| 中文字幕一区二区三区电影| 国产免费一区二区三区香蕉精| 欧美日本在线视频中文字字幕| 亚洲国产高潮在线观看| 亚洲黄页网在线观看| 国产成人高潮免费观看精品| 丝袜美腿精品国产二区| 九九热这里只有精品免费看| 亚洲视频在线观看| 久久久国产精彩视频美女艺术照福利| 国产精品第1页| 成人性生交大片免费看小说| 91tv亚洲精品香蕉国产一区7ujn| 亚洲人成在线观看网站高清| 成人亚洲综合色就1024| 亚洲91av视频| 日本中文字幕久久看| 国产日韩精品入口| 亚洲久久久久久久久久| 亚洲国产精品福利| 亚洲高清一区二| 久久视频在线播放| 欧美日韩国产999|