HttpServletRequest對象提供了多個方法來獲取HTTP請求中的參數(shù)。以下是一些常用的方法:
getParameter(String name): 獲取單個請求參數(shù)的值。參數(shù)name為請求參數(shù)的名稱。
getParameterValues(String name): 獲取多個請求參數(shù)的值。參數(shù)name為請求參數(shù)的名稱,返回一個包含所有值的字符串?dāng)?shù)組。
getParameterMap(): 獲取所有請求參數(shù)的鍵值對。返回一個Map對象,其中鍵為參數(shù)名稱,值為參數(shù)值。
getQueryString(): 獲取請求參數(shù)的原始查詢字符串。如果請求沒有參數(shù),則返回null。
getParameterNames(): 獲取所有請求參數(shù)的名稱。返回一個枚舉類型的對象,包含所有參數(shù)名稱。
以下是一個示例,演示如何使用HttpServletRequest對象獲取HTTP請求中的參數(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對象的getParameter()方法來獲取名為"name"和"age"的請求參數(shù)的值。然后,我們將這些值插入到響應(yīng)HTML頁面的文本中,并使用response對象的getWriter()方法將響應(yīng)發(fā)送回客戶端。
在將該Servlet部署到Web應(yīng)用程序中后,當(dāng)客戶端通過POST方法向該Servlet發(fā)送請求時,它將從請求中獲取名為"name"和"age"的參數(shù),并將它們插入到響應(yīng)HTML頁面的文本中。例如,如果我們將該Servlet部署到名為"myapp"的Web應(yīng)用程序中,并使用默認的端口號8080,則可以使用以下URL來向該Servlet發(fā)送請求:
http://localhost:8080/myapp/MyServlet?name=John&age=25
在上面的URL中,我們將"name"參數(shù)設(shè)置為"John",將"age"參數(shù)設(shè)置為"25"。當(dāng)我們訪問該URL時,該Servlet將從請求中獲取這些參數(shù)的值,并將它們插入到響應(yīng)HTML頁面的文本中。頁面將顯示以下內(nèi)容:
Hello, John!
You are 25 years old.