在HTML中,我们经常会用表单<form>进行用户信息的一些收集,然后提交给服务器进行处理。提交方式有get和post两种。

<form  name="表单名" action="提交路径" method="提交方法">
    用户名:<input type="text" name="username" /><br>
    密 码:<input type="password" name="password" /> 
    <input type="submit" value="提交数据" /> 
</form>

前端:

get和post两种提交方式的区别:

  • 安全性。 get<post   get提交的信息将会在URL中显示,而post提交的信息则会隐藏在Httprequest体中,这个可以通过IE下的HttpWatch抓包工具进行查看。

                         

html javascritpt 发送get请求 html发送post请求_java

      GET提交: 

html javascritpt 发送get请求 html发送post请求_表单_02

      POST提交:

html javascritpt 发送get请求 html发送post请求_数据_03

  •   可提交内容大小限制。 

     GET的内容写在URL中,所以对提交信息的长度有限制,最多不能超多8KB个字符,如果信息太长,将被截去,从而导致意想不到的结果。

     POST的内容被打包了,理论上编辑的内容是不受限制的,但建议不要超过64KB。

  • 请求响应的速度。

    GET的速度要快于POST,GET要求服务器立即请求处理,POST因携带东西较多,需形成一个队列请求。

  • 支持的字符集不同 

    GET限制Form表单的数据集的值必须为ASCII字符; 
    POST支持整个ISO10646字符集,默认是用ISO-8859-1编码

  • 数据传递形式不同

    GET若果多个变量之间&符号链接,用?符号起到连接和清除缓存的作用。

    POST在数据体中按键值对一一罗列。

默认情况下是使用GET提交方式,当然一些无关紧要的少量数据的提交,GET是比较效率高的方法;但是如果涉及到隐私,以及信息安全的数据,比如银行账户之类的私人数据,需使用POST提交。(个人建议用POST,其实所谓的速度慢也慢不到哪里去)

后端:

 表单通过action="提交路径"把数据交给后台进行处理,Servlet是专门用来处理业务逻辑的。

package com.test.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Servlet11") //配置Servlet路径
public class Servlet11 extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //这里用来接收GET提交方式的处理
        String username=request.getParameter("username");//获取到表单输入的信息
        System.out.println("username"+username);
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//这里用来接收POST提交方式的处理
        String username=request.getParameter("username");//获取到表单输入的信息
        System.out.println("username"+username);
		doGet(request, response);
	}

}

实际上,在Servlet中调用doGet()和doPost()底层都是调用了service()方法。这是Servlet生命周期的第二个阶段,用于响应客户请求的阶段,也是最核心的一个阶段。

Servlet生命周期:

html javascritpt 发送get请求 html发送post请求_表单_04