servlet中doGet方法和doPost方法的区别

转载 2018年04月15日 18:08:27
1,生成方式
get方式有四种:1)直接在URL地址栏中输入URL。2)网页中的超链接。3)form中method为get。4)form中method为空时,默认是get提交。
post只知道有一种:form中method属性为post。
2、数据传送方式
get方式:表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体。
post方式:表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。
3、服务器获取数据方式
GET方式:服务器采用request.QueryString来获取变量的值。
POST方式:服务器采用request.Form来获取数据。
4、传送的数据量
GET方式:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制。
POST方式:适合大规模的数据传送。因为是以实体的方式传送的。
5、安全性
GET方式:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低。
POST方式:安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在HTTP HEADER内一起传送到ACTION所指的URL中,用户是看不见的。
6、在用户刷新时
GET方式:不会有任何提示、
POST方式:会弹出提示框,问用户是否重新提交

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安全性较高。但是执行效率却比Post方法好。 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;



 Servlet的doGet/doPost 是在 javax.servlet.http.HttpServlet 中实现的

          doGet:处理GET请求 
          doPost:处理POST请求 
      当发出客户端请求的时候,调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。doGet和doPost都接受请求(HttpServletRequest)和响应(HttpServletResponse)。

      get只有一个流,参数附加在url后,地址行显示要传送的信息,大小个数有严格限制且只能是字符串,大小限制在1024KB。post的参数是通过另外的流传递的, 不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。

     get通过URL提交的参数会显示在地址栏中,这在系统的安全方面可能带来问题;post提交的参数不会显示在地址栏中。这样post就可以提高get的安全性能,避免数据的泄露。

     当form框里面的method为get时,执行doGet方法,使用get提交就必须在服务器端用doGet()方法接收;当form框里面的method为post时,执行doPost方法,使用post提交就必须在服务器端用doPost()方法接收。

     在request请求里面,编码转换;get方法得到的内容每一个都要进行编码转换,而post方法则只要设置request.setCharacterEncoding("UTF-8")就可以,不要再从request得到的每个数据进行编码转换了。


 

1、安全

GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来问题,例如用户名和密码等

POST就可以在一定程度上解决此类问题

2、服务器接收方式

服务器随机接受GET方法的数据,一旦断电等原因,服务器也不知道信息是否发送完毕

而POST方法,服务器先接受数据信息的长度,然后再接受数据

3、form运行方式

当form框里面的method为get时,执行doGet方法
当form框里面的method为post时,执行doPost方法

4、容量限制

GET方法后面的信息量字节大小不要超过1.3K,而Post则没有限制

###########最后说明的是:

你可以用service()来实现,它包含了doget和dopost ;service方法是接口中的方法,servlet容器把所有请求发送到该方法,该方法默认行为是转发http请求到doXXX方法中,如果你重载了该方法,默认操作被覆盖,不再进行转发操作!

service()是在javax.servlet.Servlet接口中定义的,   在   javax.servlet.GenericServlet   
    中实现了这个接口,   而   doGet/doPost   则是在   javax.servlet.http.HttpServlet   中实现的,  javax.servlet.http.HttpServlet   是   javax.servlet.GenericServlet   的子类.   
    
  所有可以这样理解,   其实所有的请求均首先由   service()   进行处理,   而在  javax.servlet.http.HttpServlet   的   service()   方法中,   主要做的事情就是判断请求类型是   Get   还是   Post,   然后调用对应的   doGet/doPost   执行.

使用目录内容建立菜单

目的:根据目录内容,建立一个菜单。菜单项为目录中的文件和子目录(以弹出方式显示)。解决方案:遍历子目录,建立一个文件路径数组。菜单项的ID是数组的索引。当用户单击某个菜单项时,从数组中读取文件路径并执...
  • jiangsheng
  • jiangsheng
  • 2001-08-02 22:58:00
  • 2066

Servlet的doGet与doPost方法的区别与使用

一,区别 在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get。可在中的method属性中指定提交的方式。如:form action="inputForm"method...
  • qq_33642117
  • qq_33642117
  • 2016-07-07 13:05:13
  • 7839

小白胡说:Servlet中doGet和doPost两种请求方式的区别

doGet和doPost 小白今天开始尝试着用Servlet,创建后有两个方法,小白很疑惑。他们都是干什么的,有什么区别??? doGet和doPost其实就是用来接收前端传过来的数据,本质上都是请求...
  • Kline_yang
  • Kline_yang
  • 2016-09-25 19:54:20
  • 3480

HttpServlet中的service()、doPost()、doGet()方法解析

1、service()方法源码解析 先来看HttpServlet的service()方法: protected void service(HttpServletRequest req, HttpS...
  • sinat_32560085
  • sinat_32560085
  • 2017-04-12 16:37:47
  • 865

Servlet中doGet和doPost方法区别

doget 是接收网页用get方法时调用的 dopost 是用来接收post方法的 get方法就象你在网页的地址栏里看到的一堆乱码,也就是url后面有参数 post就是用表单传过去的,就好象把数据都打...
  • meiyalei
  • meiyalei
  • 2008-02-26 16:09:00
  • 3339

Servlet--HttpServlet实现doGet和doPost请求的原理

Servlet--HttpServlet实现doGet和doPost请求的原理 一、HttpServlet简介 1、HttpServlet是GenericServlet的子类,又是在G...
  • m0_38039437
  • m0_38039437
  • 2017-07-17 19:06:09
  • 5223

Javaweb当中对Servlet中的doget和dopost方法的简单使用

"> 使用myeclipse进行servlet程序的创建操作 使用myeclipse进行Servlet程序的访问操作...
  • qq_34970891
  • qq_34970891
  • 2017-05-10 09:34:42
  • 318

servlet中service doGet doPost 的关系

在servlet中默认情况下,无论你是get还是post 提交过来都会经过service()方法来处理,然后转向到doGet 或是doPost方法,可以看HttpServlet 类的service方...
  • java_belucky
  • java_belucky
  • 2014-01-23 09:45:57
  • 9389

doget和dopost方法的意思,为什么在servlet中dopost中调用doget方法

doget调用dopost或者dopost调用doget一般是在教科书或者不需要区分get还是post方法调用的场合下使用。 没有默认调用哪个的说法,http访问请求的两种方式get和post,你使...
  • DreamWeaver_zhou
  • DreamWeaver_zhou
  • 2017-08-06 20:17:39
  • 727

自定义的servlet的 doGet,doPost是怎样被调用到的..

自定义的servlet的 doGet,doPost是怎样被调用到的 浏览发送请求到服务器的容器,容器调用Servlet servlet调用构造方法与init方法初始化 servlet调用servic...
  • ko0491
  • ko0491
  • 2016-01-25 22:51:44
  • 4817
收藏助手
不良信息举报
您举报文章:servlet中doGet方法和doPost方法的区别
举报原因:
原因补充:

(最多只允许输入30个字)