1. 程式人生 > >JavaWeb學習(九)HttpServletRequest基本應用——客戶端提交表單到伺服器(2)

JavaWeb學習(九)HttpServletRequest基本應用——客戶端提交表單到伺服器(2)

一、獲得客戶機請求引數(客戶端提交的資料)

  • getParameter(String)方法(常用)
  • getParameterValues(String name)方法(常用)
  • getParameterNames()方法(不常用)
  • getParameterMap()方法(編寫框架時常用)

工程樹:

Request.java

import java.io.IOException;
import java.text.MessageFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 獲取客戶端通過Form表單提交上來的引數
 */
public class Request extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //客戶端是以UTF-8編碼提交表單資料的,所以需要設定伺服器端以UTF-8的編碼進行接收,否則對於中文資料就會產生亂碼
        request.setCharacterEncoding("UTF-8");
        
        /**
         * 編  號(文字框):
           <input type="text" name="userid" value="NO." size="2" maxlength="2">
         */
        String userid = request.getParameter("userid");//獲取填寫的編號,userid是文字框的名字,<input type="text" name="userid">
       
        /**
         * 使用者名稱(文字框):<input type="text" name="username" value="請輸入使用者名稱">
         */
        String username = request.getParameter("username");//獲取填寫的使用者名稱
        
        /**
         * 密&nbsp;&nbsp;碼(密碼框):<input type="password" name="userpass" value="請輸入密碼">
         */
        String userpass = request.getParameter("userpass");//獲取填寫的密碼
        
        String sex = request.getParameter("sex");//獲取選中的性別
        String dept = request.getParameter("dept");//獲取選中的部門
        
        //獲取選中的興趣,因為可以選中多個值,所以獲取到的值是一個字串陣列,因此需要使用getParameterValues方法來獲取
        String[] insts = request.getParameterValues("inst");
       
        String note = request.getParameter("note");//獲取填寫的說明資訊
        String hiddenField = request.getParameter("hiddenField");//獲取隱藏域的內容
        
        String instStr="";
        /**
         * 獲取陣列資料的技巧,可以避免insts陣列為null時引發的空指標異常錯誤!
         */
        for (int i = 0; insts!=null && i < insts.length; i++) {
            if (i == insts.length-1) {
                instStr+=insts[i];
            }else {
                instStr+=insts[i]+",";
            }
        }
        
        String htmlStr = "<table>" +
                            "<tr><td>填寫的編號:</td><td>{0}</td></tr>" +
                            "<tr><td>填寫的使用者名稱:</td><td>{1}</td></tr>" +
                            "<tr><td>填寫的密碼:</td><td>{2}</td></tr>" +
                            "<tr><td>選中的性別:</td><td>{3}</td></tr>" +
                            "<tr><td>選中的部門:</td><td>{4}</td></tr>" +
                            "<tr><td>選中的興趣:</td><td>{5}</td></tr>" +
                            "<tr><td>填寫的說明:</td><td>{6}</td></tr>" +
                            "<tr><td>隱藏域的內容:</td><td>{7}</td></tr>" +
                        "</table>";
        htmlStr = MessageFormat.format(htmlStr, userid,username,userpass,sex,dept,instStr,note,hiddenField);
        
        response.setCharacterEncoding("UTF-8");//設定伺服器端以UTF-8編碼輸出資料到客戶端
        response.setContentType("text/html;charset=UTF-8");//設定客戶端瀏覽器以UTF-8編碼解析資料
        response.getWriter().write(htmlStr);//輸出htmlStr裡面的內容到客戶端瀏覽器顯示
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

index.jsp

 

 

PS:  MessageFormat.format

String msg = "{0}{1}{2}{3}{4}{5}{6}{7}{8}";
Object [] array = new Object[]{"A","B","C","D","E","F","G","H","I",};		
String value = MessageFormat.format(msg, array);
System.out.println(value);  // 輸出:ABCDEFGHI

轉自:https://www.cnblogs.com/xdp-gacl/p/3798347.html