HttpServletRequest對(duì)象提供了多個(gè)方法來(lái)獲取HTTP請(qǐng)求中的參數(shù)。以下是一些常用的方法:
getParameter(String name): 獲取單個(gè)請(qǐng)求參數(shù)的值。參數(shù)name為請(qǐng)求參數(shù)的名稱。
getParameterValues(String name): 獲取多個(gè)請(qǐng)求參數(shù)的值。參數(shù)name為請(qǐng)求參數(shù)的名稱,返回一個(gè)包含所有值的字符串?dāng)?shù)組。
getParameterMap(): 獲取所有請(qǐng)求參數(shù)的鍵值對(duì)。返回一個(gè)Map對(duì)象,其中鍵為參數(shù)名稱,值為參數(shù)值。
getQueryString(): 獲取請(qǐng)求參數(shù)的原始查詢字符串。如果請(qǐng)求沒(méi)有參數(shù),則返回null。
getParameterNames(): 獲取所有請(qǐng)求參數(shù)的名稱。返回一個(gè)枚舉類型的對(duì)象,包含所有參數(shù)名稱。
以下是一個(gè)示例,演示如何使用HttpServletRequest對(duì)象獲取HTTP請(qǐng)求中的參數(shù):
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String age = request.getParameter("age");
out.println("<html>");
out.println("<head>");
out.println("<title>My Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello, " + name + "!</h1>");
out.println("<p>You are " + age + " years old.</p>");
out.println("</body>");
out.println("</html>");
}
}
在上面的代碼中,我們首先使用request對(duì)象的getParameter()方法來(lái)獲取名為"name"和"age"的請(qǐng)求參數(shù)的值。然后,我們將這些值插入到響應(yīng)HTML頁(yè)面的文本中,并使用response對(duì)象的getWriter()方法將響應(yīng)發(fā)送回客戶端。
在將該Servlet部署到Web應(yīng)用程序中后,當(dāng)客戶端通過(guò)POST方法向該Servlet發(fā)送請(qǐng)求時(shí),它將從請(qǐng)求中獲取名為"name"和"age"的參數(shù),并將它們插入到響應(yīng)HTML頁(yè)面的文本中。例如,如果我們將該Servlet部署到名為"myapp"的Web應(yīng)用程序中,并使用默認(rèn)的端口號(hào)8080,則可以使用以下URL來(lái)向該Servlet發(fā)送請(qǐng)求:
http://localhost:8080/myapp/MyServlet?name=John&age=25
在上面的URL中,我們將"name"參數(shù)設(shè)置為"John",將"age"參數(shù)設(shè)置為"25"。當(dāng)我們?cè)L問(wèn)該URL時(shí),該Servlet將從請(qǐng)求中獲取這些參數(shù)的值,并將它們插入到響應(yīng)HTML頁(yè)面的文本中。頁(yè)面將顯示以下內(nèi)容:
Hello, John!
You are 25 years old.