简单地说,表单内使用Get使得servlet调用doGet方法,表单的属性值回附加在跳转的url上。
而表单内使用Post使得servlet调用doPost方法,跳转url后不附加表单属性。
程序栗子:
htm页面:ThreeParams.htm
<form id="forml" name="forml" method="get" action="servlet/ThreeParams">
<table width="343" border="1">
<tr>
<td width="92">param1</td>
<td width="94">
<input type="text" name="param1" id="param1" />
</td>
</tr>
<tr>
<td>param2</td>
<td><label>
<input type="text" name="param2" id="param2" />
</label></td>
</tr>
<tr>
<td>param3</td>
<td>
<input type="text" name="param3" id="param3" />
</td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" value="提交" />
</label></td>
</tr>
</table>
</form>
注意method是get,action是servlet/ThreeParams.
测试java类:
public class ThreeParams extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println(request.getParameter("param1"));
pw.println("<br>");
pw.println(request.getParameter("param2"));
pw.println("<br>");
pw.println(request.getParameter("param3"));
pw.println("<br>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doPost");
doGet(request, response);
}
}
/
ThreeParams.htm页面(客户端)使用request.getParameter(String s)根据表单name
拿到表单值,通过response pw输出。
先测试doGet
运行结果:
测试doPost: