request對象,目的是用來獲取客戶端的請求。
主要方法有:
request.getMethod(); // 獲取提交請求的方式
request.getProtocol(); // 獲取請求的協議
request.getRequestURL(); // 獲取請求目標網絡路徑
request.getServletPath(); // 獲取請求目標的在項目中的相對路徑
request.getServerName(); // 獲取服務器名稱/ip
request.getServerPort(); // 獲取服務器端口號
request.getRemoteAddr(); // 客戶端IP
request.getRemoteHost(); // 客戶端主機
request.getCharacterEncoding(); // 對請求編碼
request.getParameter("username"); // 獲取提交過來的數據
request.getRequestURI(); // 獲取請求目標的相對路徑
request.getQueryString(); // 獲取請求的全部參數(可以用作登錄成功返回某一路徑)
還有request.setAttribute("",""); request.getAttribute(""); 這里對它和request.getParamter(""); 區分一下,首先要明白轉發和重定位的概念。
轉發:現實的例子是小明讓小李做某件事,但是小李自己做不了或者不想做,於是將這件事告訴小王,小王做了這件事還可以將這件事交給小孫。。。,在整個事件中小明只是知道把這件事交給了小李,至於其它人他不知道。編程的知識是:轉發源的瀏覽器地址欄地址是不變的,也就是小明看到的一直是小李的地址,在后面小李、小王之間不斷告訴這件事所以是可以共享數據的。轉發的代碼是:request.getRequestDispatcher().forwar(request,response); 重點是地址不變,共享數據,所以可以設置
request.setAttribute("",""); request.getAttribute("");來共享數據。還可以獲取其余數據,也就是小李獲取的數據小王和小孫都能獲取,他們時間還可以共享數據。
重定位:現實的例子是小明讓小李做某件事但是小李不做,小明又讓小王做。。。,整件事小明都知道誰參與了,在編碼中就是瀏覽器的地址在不斷的變化,只要瀏覽器的地址變化都可以算作重定位比如表單提交,鏈接,和response.sendRedirect(""); 重點是不共享數據只能通過request.getParameter(""); 將數據寫入request流中。
上面的小明、小李是web組件是jsp html servlet都可以。