HTTP GET 和HTTP POST是开发web应用的两种最重要的请求方法。两者的区别是POST有体(body),而GET没有。
POST与GET不同:
POST没有查询字符串,请求行后面的几行都是请求头。长度不受请求行的限制。
如果用户希望能够收藏网页,GET能够请求收藏,但POST请求不能
两者的安全性也不同,GET将请求信息放在URL,POST放在报文体中
具体用途不同,GET请求意味着获取信息,进行简单的、周期性的检索。POST请求亦为之发送需要处理的信息,去更新
GET和POST请求的编程
POST请求需要表单,在标签中使用method属性指定HTTP方法为POST,使用action属性指定表单提交的地址。
代码:
姓名:
密码:
GET请求可以使用两种方式:
第一种方式直接使用超链接,超链接总是使用GET请求,代码如下:
点击
第二种方法使用表单,既可以不指定标签的method属性,也可以明确指定标签的method属性为GET,代码如下:
姓名:
密码:
点击
使用参数 Servlet编程中的一个重要环节是接收用户的输入参数,然后才能进行后面的处理环节。接收输入参数的具体方法是调用request对象的getParameter()方法,该方法的输入参数是一个字符串变量,指定参数的名称,该名称对应表单输入组件的name属性。例如,对于前面的login.html,接收参数的代码片段如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setCharacterEncoding(“UTF-8”);
//response.getWriter().append("Served at: ").append(request.getContextPath());
response.setHeader(“Content-type”, “text/html;charset=UTF-8”);
//获取参数
String username = request.getParameter(“username”);
String userpwd = request.getParameter(“userpwd”);
String gender = request.getParameter(“gender”);
String email = request.getParameter(“email”);
String resume = request.getParameter(“resume”);
String[] hobbies = request.getParameterValues(“hobbies”);
}
大部分的表单输入参数都只有单个值,都可以采用上述方法获取参数。但也有例外的情况,如复选框,一个参数可以有多个值。 在这种情况下,就不能再使用只返回单个字符串的getParameterf()方法,而是要使用getParameterValues()方法,返回一个字符串数组。
例如,如果表单使用如下的复选框,用户就可以选择多个值。也就是说,单个参数hobbies就可以有多个值,具体值的个数取决于用户选中的选项数:
爱好:跳舞
唱歌
音乐
游泳
足球