在javaWeb中如何獲得html文件中的表單里面的值?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>注冊頁面</title> </head> <body> <form action = "register" method = "post"> 用戶名:<input type = "text" name = "username"><br> 密碼:<input type = "password" name = "password"><br> 愛好 : LOL<input type="checkbox" name="hobits" value="lol"> DOTA<input type="checkbox" name="hobits" value="dota"> <br> <input type="submit" value="注冊"> </form> </body> </html>
比如在上面這個表單中,我們想獲得用戶名,密碼,愛好等屬性值。
則可以在對應的 registerServlet文件中,重寫service()方法。
通過觀察ServletRequest文件可以看出request一般獲取參數的方式分為一下四種:
- String getParameter(String name); 一般根據參數名稱來獲取參數值
- public Enumeration<String> getParameterNames(); 根據參數名稱獲取參數集
- public String[] getParameterValues(String name); 獲得一個參數名對應的多個參數值
- Map<String, String[]> getParameterMap(); 獲取一對參數名和參數值
public class RegisterServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //獲得單獨的參數 String name = request.getParameter("username"); System.out.println("用戶名:"+name); //獲得多個參數 String[] habitss = request.getParameterValues("hobits"); System.out.println(Arrays.asList(habitss)); Map<String, String[]> parameters= request.getParameterMap(); //設定key值 Set<String> parName = parameters.keySet(); for (String param : parName) { String[] value = parameters.get(param); System.out.println(param + ":" + Arrays.asList(value)); } } }
在上面的樣例中,簡單的對上面三種獲取參數的驗證。
其中
String[] habitss = request.getParameterValues("hobits");
System.out.println(Arrays.asList(habitss));
可以通過 Arrays.asList()將數組轉化為list對象。
比如下面這幾行代碼,然后直接通過lise.get(1)獲得對應的參數
public class test { public static void main(String[] args) { String[] name = {"jack","rose","wgjl"}; List<String> list = Arrays.asList(name); System.out.println(list.get(1)); } }