天天看點

Servlet 讀取 HTML 中同一 NAME 屬性值的多個參數

我們通常讀取的都是根據 HTML 中的标簽的不同的 NAME 值來擷取 Parameter 的,但是,如果有多個标簽是相同的 NAME  值呢?比方說 HTML 如下的網頁:

1:  <form method="post" action="login">      
2:      <div>Username:<input class="input" type="text" name="name"/><br/>
   div>      
3:      <div>Password:<input class="input" type="text" name="name"/><br/>
   div>      
4:      <input type="submit" value="Submit"/>      
5:  
   form>          

此時我們可以參照如下代碼解決問題:

1:  String[] values = req.getParameterValues("name");      
2:  if (values.length == 1) {      
3:      if (values[0].length() != 0) {      
4:          resp.getWriter().println("         "              + values[0] + "                ");      
5:      } else {      
6:          resp.getWriter().println("         空值                ");      
7:      }      
8:  } else {      
9:      for (String s : values) {      
10:          resp.getWriter().println("         "              + s + "                ");      
11:      }      
12:  }      

也就是調用 getParameterValues("name") 來讀取多個值。

此外,我們還可以通過 getParameterMap() 來實作:

1:  Map
  
    parasMap = req.getParameterMap();
        
2:  Set
  
   
    > parasSet = parasMap.entrySet();
   
        
3:  for (Map.Entry
  
    s : parasSet) {
        
4:      String[] values = s.getValue();      
5:      for (String val : values) {      
6:          if (val.length() != 0) {      
7:              resp.getWriter().println("
" + val + "
");      
8:          } else {      
9:              resp.getWriter().println("
空值
");      
10:          }      
11:      }      
12:  }      

getParameterMap

java.util.Map
  
           getParameterMap                ()
       
Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
Returns:
an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.

繼續閱讀