後臺獲取前端信息的紐帶--HttpServletRequest

HttpServletRequestRequest對象具體應用

HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HTTP請求頭中的所有信息都封裝在這個對象中,開發人員通過這個對象的相關方法,即可以獲得客戶的這些信息。

、通過request常用方法獲得相關信息:

1、通過request常用方法獲得客戶機信息

  •     getRequestURL方法返回客戶端發出請求時的完整URL。
  • getRequestURI方法返回請求行中的資源名部分。
  • getQueryString 方法返回請求行中的參數部分。
  • getRemoteAddr方法返回發出請求的客戶機的IP地址
  • getRemoteHost方法返回發出請求的客戶機的完整主機名
  • getRemotePort方法返回客戶機所使用的網絡端口號
  • getLocalAddr方法返回WEB服務器的IP地址。
  • getLocalName方法返回WEB服務器的主機名
  • getMethod得到客戶機請求方式

例如在Request.java中加入如下代碼:

[java]  view plain copy
  1. //返回相關請求的信息  
  2.            String uri=request.getRequestURI();  
  3.               Stringrad = request.getRemoteAddr();  
  4.               Stringrh = request.getRemoteHost();  
  5.               Stringru = request.getRemoteUser();  
  6.               intrp = request.getRemotePort();  
  7.               Stringcp = request.getContextPath();  
  8.               Stringla = request.getLocalAddr();  
  9.               Stringce = request.getCharacterEncoding();  
  10.               Stringgm = request.getMethod();  
  11.               Stringqs = request.getQueryString();  
  12.    
  13.               System.out.println(uri);  
  14.               System.out.println(rad);  
  15.               System.out.println(rh);  
  16.               System.out.println(ru);  
  17.               System.out.println(rp);  
  18.               System.out.println(cp);  
  19.               System.out.println(la);  
  20.               System.out.println(ce);  
  21.               System.out.println(gm);  
  22.               System.out.println(qs);  

  即可獲取相關信息。

2、通過request常用方法獲得客戶機請求頭信息

  •   getHead(name)方法
  •   getHeaders(String name)方法
  •   getHeaderNames方法 

如:

[java]  view plain copy
  1. private void getRequestValue(HttpServletRequest request) {  
  2.         //獲得客戶機請求頭及請求頭的值  
  3.         System.out.println(request.getHeader("method"));  
  4.         Enumeration e = request.getHeaderNames();  
  5.         while(e.hasMoreElements()){  
  6.             String name = (String)e.nextElement();  
  7.             String value = request.getHeader(name);  
  8.             System.out.println(name+":"+value);  
  9.         }  
  10.     }  


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等組件的值進行數據庫操作或其他處理操作。

來看一個具體應用:


界面代碼主體部分如下:

 

[html]  view plain copy
  1.  Register.html  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">  
  3. <html>  
  4.  <head>  
  5.    <title>Register.html</title>  
  6.         
  7.     <metahttp-equivmetahttp-equiv="keywords"content="keyword1,keyword2,keyword3">  
  8.     <metahttp-equivmetahttp-equiv="description" content="this is my page">  
  9.    <meta http-equiv="content-type" content="text/html;charset=UTF-8">  
  10.      
  11.    <!--<link rel="stylesheet" type="text/css"href="./styles.css">-->  
  12.    
  13.  </head>  
  14.    
  15.  <body>  
  16.  <form action ="RequestLogin" method ="post">  
  17.     用戶名:<input type="text"name = "username" ><br/>  
  18.     密碼:  <inputtypeinputtype="password" name = "password"><br/>  
  19.   性別:<input type="radio"name = "sex" value ="male">男  
  20.      <input type="radio" name = "sex" value="female"><br/>  
  21.   籍貫: <select name="city">  
  22.        <option value ="HeBei">河北</option>  
  23.        <opton value ="HuBei">湖北</opton>  
  24.        <option value ="ShanXi">山西</option>  
  25.      </select><br/>  
  26. 簡歷:<br/>  
  27.   &nsp;<textarea rows="5" cols="20" name="intro"></textarea>  
  28. <br/>  
  29. 愛好:<br/>  
  30. <input type="checkbox" name="hobbies" value ="sing"/>唱歌  
  31. <input type="checkbox" name="hobbies" value ="dance"/>跳舞  
  32. <input type="checkbox" name="hobbies" value ="readbook"/>讀書  
  33. <input type="checkbox" name="hobbies" value ="readnewspaper"/>看報<br/>  
  34. 上傳頭像:<br/>  
  35. <input type="file" value="image" name ="browser"><br/>  
  36. <input type="submit" value="提交"/>  
  37.  </form>  
  38. <br/>  
  39. <input type="submit" value="提交"/>  
  40.  </form>  
  41.    
  42.  </body>  
  43. </html>  

然後,定義一個RequestLogin.java類通過request對象獲取表單中組件的值:

如調用自定義方法:

[java]  view plain copy
  1. private void getInformation(HttpServletRequest request)  
  2. throws UnsupportedEncodingException {  
  3. //取出參數值   
  4. ="submit" value="提交"/>  
  5.  </form>  
  6.    
  7.  </body>  
  8. </html>  

然後,定義一個RequestLogin.java類通過request對象獲取表單中組件的值:

如調用自定義方法:

[java]  view plain copy
  1. private void getInformation(HttpServletRequest request)  
  2. throws UnsupportedEncodingException {  
  3. //取出參數值   
  4. String name = request.getParameter("username"
相關文章
相關標籤/搜索