日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVAWEB入门之Requset原理

發布時間:2024/7/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVAWEB入门之Requset原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Request

?

1.request和respinse對象的原理

??request和respinse對象是由服務器創建的,我們只是使用他們

request對象是來獲取請求消息,response是來設置響應消息

3.request對象的繼承體系結構:
? ServletRequest-------接口

繼承

HttpServletRequest-------接口(*)

繼承

org.apache.catalina.connector.RequestFacade--------一個類,由tomcat編寫

?

下面的操作是打開tomcat的源碼安裝包解壓縮,按照這個路徑點進去查看API即可

?

?

@WebServlet("*.do") public class ServletDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doget..");System.out.println(req);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("dopost...");} }

HttpServletRequest

?

4.request功能:獲取請求消息,看上面那一篇的4個獲取內容即可

獲取請求行數據

例如:GET/day14/demo1?name=zhangsan HTTP/1.1

  • 獲取請求方式:GET
  • String getMethdo()
  • (*)獲取虛擬目錄:/day_14
  • String getContextPath()
  • 獲取Servlet路徑:/demo1
  • String getServletPath()
  • 獲取get方式的請求參數:name=zhangsan
  • String getQueryString()
  • (*)獲取請求URI:/day14/demo1
  • String getRequestURI()? ? ? ? ? ? ? ? ? ?/day14/demo1
  • StringBuffer getRequestURL()? ? ? ? http://localhost/8888/day14/demo1
  • 獲取協議及版本1.1
  • String getProtocol()
  • 獲取客戶機的IP地址
  • String getRemoteAddr()
  • 獲取請求頭數據

    方法

  • (*)String getHeader(string name):通過請求頭的名稱來獲取請求頭的值
  • 獲取請求體數據

  • 請求體:只有POST請求方式,才有請求體,在請求體中封裝了POST請求的請求參數
  • 步驟:
  • 獲取流對象
  • BufferdeReader getReader():獲取字符輸入流,只能來操作字符數據
  • ServletInputStream getInputStream();獲取字節輸入流,可以操作所有類型數據
  • 在文件上傳知識點后講解
  • 再從流對象中拿數據
  • 5.其他功能

    1.獲取請求參數通用方式(Post和Get都適用)

  • String getParameter(String name):根據參數名稱獲取參數值? ?username=zhangsan&password=123?
  • String[] getParameterValues(String name):根據參數名稱獲取參數值的數組,多用于復選框, hobby=xx&hobby=name
  • Enumeration<String> getParameterNames():獲取所以有請求的參數名稱,但是獲取的如果是復選框的話,值只會獲取到一個,所以我們會有第5點的出現
  • Map<String,String[]> getParameterMap():獲取所有參數的map集合 ,即鍵值對的集合
    • 這意味著在doGet方法里面也可以直接通過參數調用實現doPost的方法,代碼如下

    ?

    中文亂碼問題:

    • get方式:tomcat 8 已經將get方式亂碼問題解決了,因為他的參數在url中
    • post方式:會亂碼,因為他的參數通過的是內部的流來獲取參數的值
    • 解決方法:在獲取參數前,設置request的編碼 //1.設置流的編碼request.setCharacterEncoding("utf-8");

    ?

    ?

    2.請求轉發

    只進行一次數據轉發

    3.共享數據

    先存到域中,然后再進行轉發

    demo9是負責獲取數據的

    4.獲取ServletContext:

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的JAVAWEB入门之Requset原理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。