javaweb-request



request 對象
              獲取請求消息
1.獲取請求行: GET     /MyServlet/index.jsp?name=zhangsan&age=23  HTTP/1.1

request.getMethod();//獲取請求方式
request.getContextPath();//獲取項目名稱
request.getRequestURI();//獲取URI
request.getRequestURL();//獲取URL
request.getRemoteAddr();//獲取IP地址
request.getQueryString();//獲取請求參數
request.getProtocol();//獲取協議版本
2.獲取請求頭:


request.getHeader("user-agent");//獲取請求頭的值
request.getDateHeader(name);//獲取日期頭
request.getIntHeader(name)//獲取數字頭
3.獲取請求體: 請求體:專門用於封裝Post請求的 請求參數


獲取字符數據: getReader(); 返回一個高效的字符流 我們通過一次讀取一行的 方法來獲取請求參數數據  然後 拆分字符串獲取我們想要的數據




獲取字節數據:getInputStream(); 後期上傳文件時講解


4. 通用的方式來獲取 請求參數
request.getParameter(name);  通過請求參數的名稱來獲取值
request.getParameterValues("hobby"); 通過請求參數的名稱,來獲取值的數組 一般用於複選框
request.getParameterMap();  獲取所有參數的map集合
request.getParameterNames(); 獲取所有參數的名稱 枚舉 不常用 瞭解




5. 處理中文亂碼問題
               
//通用處理方式:處理get post 請求提交中文數據亂碼問題
String username = request.getParameter("username");
byte[] bytes = username.getBytes("ISO-8859-1");//將字符串還原成字節 相當於解碼
username=new String(bytes,"utf-8");//將字節重新編碼

post 請求特有的方式 處理中文亂碼
request.setCharacterEncoding("utf-8");
6.請求轉發:
轉發的特點:
1.一次請求一次響應
2.地址欄不發生變化
3.只能訪問內部站點資源
代碼:
request.getRequestDispatcher("/myservlet2").forward(request, response);


7.域對象: 請求域的範圍中共享數據
在一次請求的多個資源之間共享數據
request.setAttribute("name","zhangsan");
request.getAttribute("name");
request.removeAttribute("name");
什麼時候使用重定向?什麼時候使用轉發?
1.如果需要在請求的多個資源中共享數據,則使用轉發
2.如一次性的數據存入請求域中


8.路徑的書寫: 
建議以/開頭
服務器內部跳轉路徑 不需要加項目名稱  request.getRequestDispatcher("/myservlet2").forward(request, response);


頁面上的路徑和重定向 需要加上 項目名稱
<img src="/MyServlet/mydemo4" id="img1"></img>


一般來說我們寫相對路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章