Java面试题老被问道这个问题,之前也没想起来整理,今天看了一下servlet教程看到了部分的内容,想了起来,就去截取了一些信息,觉得不对的可以及时提出来。

get请求的参数一般放在url中,但是浏览器和服务器程序对url长度还是有限制的。
post请求的参数一般放在body,你硬要放到url中也可以。

在RESTful风格中,get用于从服务器获获取数据,而post用于创建数据

这个是我从此博客整理出来,觉得挺有道理,详解大家可以参考此一下:
http://www.nowamagic.net/librarys/veda/detail/1919
下面是我之前学习常用的请求方式,就是在post方法里直接调用get方法,大家可以看一下

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
public class HelloForm extends HttpServlet {

  // 处理 GET 方法请求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html;charset=UTF-8");

      PrintWriter out = response.getWriter();
      String title = "Using GET Method to Read Form Data";
      String docType =
      "<!doctype html public \"-//w3c//dtd html 4.0 " +
      "transitional//en\">\n";
      out.println(docType +
                "<html>\n" +
                "<head><title>" + title + "</title></head>\n" +
                "<body bgcolor=\"#f0f0f0\">\n" +
                "<h1 align=\"center\">" + title + "</h1>\n" +
                "<ul>\n" +
                "  <li><b>名字</b>:"
                + request.getParameter("first_name") + "\n" +
                "  <li><b>姓氏</b>:"
                + request.getParameter("last_name") + "\n" +
                "</ul>\n" +
                "</body></html>");
  }
  // 处理 POST 方法请求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

网络请求中post和get方法的区别

1.get是从服务器上获取数据,post是向服务器传送数据。 
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对
应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML 
HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 
3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端
用Request.Form获取提交的数据。
4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理
论上,IIS4中最大量为80KB,IIS5中为100KB。 
5 get安全性非常低,post安全性较高。 
6 HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。
事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。根据 HTTP 规范,GET 用于信
息获取,而且应该是 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换
句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL 的多个请求应该返回同样的
结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以
确信从自身的角度来看没有改变资源。 比如,新闻站点的头版不断更新。虽然第二次请求会返回
不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。
POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,
读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了 7 在FORM提
交的时候,如果不指定Method,则默认为GET请求,Form中提交的数据将会附加在url之后,
以?分开与url分开。字母数字字符原 样发送,但空格转换为“+“号,其它符号转换为%XX,其中
XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP
请求协议头中,而POST提交的数据则放在实体数据中;GET方式提交的数据最多只能有1024字
节,而POST则没有此限制