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>
一般來說我們寫相對路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.