HttpServletRequestRequest對象具體應用
HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HTTP請求頭中的所有信息都封裝在這個對象中,開發人員通過這個對象的相關方法,即可以獲得客戶的這些信息。
一、通過request常用方法獲得相關信息:
1、通過request常用方法獲得客戶機信息
- getRequestURL方法返回客戶端發出請求時的完整URL。
- getRequestURI方法返回請求行中的資源名部分。
- getQueryString 方法返回請求行中的參數部分。
- getRemoteAddr方法返回發出請求的客戶機的IP地址
- getRemoteHost方法返回發出請求的客戶機的完整主機名
- getRemotePort方法返回客戶機所使用的網絡端口號
- getLocalAddr方法返回WEB服務器的IP地址。
- getLocalName方法返回WEB服務器的主機名
- getMethod得到客戶機請求方式
例如在Request.java中加入如下代碼:
- //返回相關請求的信息
- String uri=request.getRequestURI();
- Stringrad = request.getRemoteAddr();
- Stringrh = request.getRemoteHost();
- Stringru = request.getRemoteUser();
- intrp = request.getRemotePort();
- Stringcp = request.getContextPath();
- Stringla = request.getLocalAddr();
- Stringce = request.getCharacterEncoding();
- Stringgm = request.getMethod();
- Stringqs = request.getQueryString();
-
- System.out.println(uri);
- System.out.println(rad);
- System.out.println(rh);
- System.out.println(ru);
- System.out.println(rp);
- System.out.println(cp);
- System.out.println(la);
- System.out.println(ce);
- System.out.println(gm);
- System.out.println(qs);
即可獲取相關信息。
2、通過request常用方法獲得客戶機請求頭信息
- getHead(name)方法
- getHeaders(String name)方法
- getHeaderNames方法
如:
- private void getRequestValue(HttpServletRequest request) {
- //獲得客戶機請求頭及請求頭的值
- System.out.println(request.getHeader("method"));
- Enumeration e = request.getHeaderNames();
- while(e.hasMoreElements()){
- String name = (String)e.nextElement();
- String value = request.getHeader(name);
- System.out.println(name+":"+value);
- }
- }
3.獲得客戶機請求參數(客戶端提交的數據)
- getParameter(name):獲取指定名稱的參數值。這是最爲常用的方法之一。
- getParameterValues(String name):獲取指定名稱參數的所有值數組。它適用於一個參數名對應多個值的情況。如頁面表單中的複選框,多選列表提交的值。
- getParameterNames():返回一個包含請求消息中的所有參數名的Enumeration對象。通過遍歷這個Enumeration對象,就可以獲取請求消息中所有的參數名
- getParameterMap():返回一個保存了請求消息中的所有參數名和值的Map對象。Map對象的key是字符串類型的參數名,value是這個參數所對應的Object類型的值數組。
二、request的常見應用
1、 各種表單輸入項數據的獲取
如可以獲取form表單中的text、password、radio、checkbox、 file、select、textarea、 hidden、image、button等組件的值進行數據庫操作或其他處理操作。
來看一個具體應用:
![](http://static.javashuo.com/static/loading.gif)
界面代碼主體部分如下:
- Register.html
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">
- <html>
- <head>
- <title>Register.html</title>
-
- <metahttp-equivmetahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
- <metahttp-equivmetahttp-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html;charset=UTF-8">
-
- <!--<link rel="stylesheet" type="text/css"href="./styles.css">-->
-
- </head>
-
- <body>
- <form action ="RequestLogin" method ="post">
- 用戶名:<input type="text"name = "username" ><br/>
- 密碼: <inputtypeinputtype="password" name = "password"><br/>
- 性別:<input type="radio"name = "sex" value ="male">男
- <input type="radio" name = "sex" value="female">女<br/>
- 籍貫: <select name="city">
- <option value ="HeBei">河北</option>
- <opton value ="HuBei">湖北</opton>
- <option value ="ShanXi">山西</option>
- </select><br/>
- 簡歷:<br/>
- &nsp;<textarea rows="5" cols="20" name="intro"></textarea>
- <br/>
- 愛好:<br/>
- <input type="checkbox" name="hobbies" value ="sing"/>唱歌
- <input type="checkbox" name="hobbies" value ="dance"/>跳舞
- <input type="checkbox" name="hobbies" value ="readbook"/>讀書
- <input type="checkbox" name="hobbies" value ="readnewspaper"/>看報<br/>
- 上傳頭像:<br/>
- <input type="file" value="image" name ="browser"><br/>
- <input type="submit" value="提交"/>
- </form>
- <br/>
- <input type="submit" value="提交"/>
- </form>
-
- </body>
- </html>
然後,定義一個RequestLogin.java類通過request對象獲取表單中組件的值:
如調用自定義方法:
- private void getInformation(HttpServletRequest request)
- throws UnsupportedEncodingException {
- //取出參數值
- ="submit" value="提交"/>
- </form>
-
- </body>
- </html>
然後,定義一個RequestLogin.java類通過request對象獲取表單中組件的值:
如調用自定義方法:
- private void getInformation(HttpServletRequest request)
- throws UnsupportedEncodingException {
- //取出參數值
- String name = request.getParameter("username"