`

Servlet中的GET和POST之间的区别

阅读更多

get和post这是http协议的两种方法,另外还有head,  delete等  
这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。  
在servlet开发中,以doGet()和doPost()分别处理get和post方法。  
另外还有一个doService(),  它是一个调度方法,当一个请求发生时,首先执行doService(),不管是get还是post。在HttpServlet这个基类中实现了一个角度,首先判断是请求时get还是post,如果是get就调用doGet(),  如果是post就调用doPost()。你也可以直接过载doService()方法,这样你可以不管是get还是post。都会执行这个方法。  
---------------------------------------------------------------  
 
1.通过表单提交到的servlet,看form的method是get还是post  
2.通过链接访问的servlet,doGet  
3.直接在ie地址栏中键入的servlet地址,doGet  
 
一般只要实现一个doGet,再另外一个doPost里面调用doGet(resq,resp),resq和resd是doPost的参数.  
---------------------------------------------------------------  
 
可以互相调用.  
doGet()  和doPost()方法,前者处理你表单提交来的method=get的请求,后者处理method=post  的请求  

GET和POST的本质区别是什么?

        使用GET,form中的数据将编码到url中,而使用POST的form中的数据则在http协议的header中传输。在使用上,当且仅当请求幂等(字面意思是请求任意次返回同样的结果,本质是请求本身不会改变服务器数据和状态)时使用GET,当请求会改变服务器数据或状态时(更新数据,上传文件),应该使用POST。
区别使用GET,POST意义何在?
       重复访问使用GET方法请求的页面,浏览器会使用缓存处理后续请求。使用POST方法的form提交时,浏览器基于POST将产生永久改变的假设,将让用户进行提交确认。当编成人员正确的使用GET,POST后,浏览器会给出很好的缓存配合,时响应速度更快。
在form提交阶段的差别
         form提交的第一步是创建数据集,并根据ENCTYPE对数据集进行编码。ENCTYPE有两个值:multipart/form-data,application/x-www-form-urlencoded(默认值),前者可同时用于GET,POST,后者只用于POST。然后进行数据传输--对于GET方法,数据集使用content type application/x-www-form-urlencoded编码并附在url后面,在这种模式下,数据严格限制为ASCII码;对于POST,使用content type编码字符集并将其构造成消息发送。
在服务器处理部分的差别
        原则上,除理GET和POST请求是没有分别的。但由于数据通过不同的方法编码,需要有不同的解码机制。所以,方法变化将导致处理请求的代码变化。比如对于cgi,处理GET时通过环境变量获得参数,处理POST请求时则通过标准输入(stdin) 获得数据。

从使用经验,我们有如下总结:
1、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
2、对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。
3、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
4、get安全性非常低,post安全性较高。
5、<form method="get" action="a.asp?b=b">跟<form method="get" action="a.asp">是一样的,也就是说,action页面后边带的参数列表会被忽视;而<form method="post" action="a.asp?b=b">跟<form method="post" action="a.asp">是不一样的。


另外

Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。

分享到:
评论

相关推荐

    JavaWeb笔记08Servlet中get和post区别.pdf

    "JavaWeb笔记08Servlet中get和post区别" Servlet是Java Web开发中最基本的组件之一,它可以处理HTTP请求并生成响应。在Servlet中,get和post是两种常用的HTTP请求方法,两者之间有着很大的区别。 GET请求 GET请求...

    Servlet表单Get和Post方式读取

    在这个"Servlet表单Get和Post方式读取"的主题中,我们将深入探讨如何使用Servlet来接收和处理来自HTML表单的GET和POST请求。 首先,让我们了解GET和POST这两种HTTP方法的基本概念: 1. GET方法:这是HTTP请求中最...

    超强过滤器彻底解决JSP-SERVLET中文参数GET-POST传递的问题(转)

    总结,"超强过滤器"是解决JSP-Servlet之间中文参数GET-POST传递问题的有效手段,通过统一设定请求的字符编码,确保在整个Web应用中中文数据能够正确无误地传输和处理。对于大型项目,这样的全局解决方案可以大大提升...

    用AJAX的Get和Post调用Servlet的简单示例.doc

    通过上述分析,我们深入了解了如何使用AJAX的GET和POST方法调用Servlet,以及在实际应用中需要注意的关键点。正确地使用AJAX可以显著提升Web应用的性能和用户体验,但同时也需要注意数据的安全性和请求的有效管理。...

    Tomcat中Get和Post出现乱码的解决办法

    "Tomcat中Get和Post出现乱码的解决办法" 在 Tomcat 中,Get 和 Post 方法都可能出现乱码问题,这主要是由于编码问题引起的。在本文中,我们将详细介绍 Tomcat 中 Get 和 Post 方法出现乱码的解决办法。 一、乱码...

    JSP、Servlet中get请求和post请求的区别总结

    在JavaWeb开发中,JSP和Servlet经常用来处理HTTP请求,其中包括两种主要的请求方式:GET和POST。本文将深入探讨这两种请求方式的区别。 首先,GET请求和POST请求在数据传输方式上有显著差异。GET请求将参数直接附加...

    Get与Post区别代码实例

    Servlet中Get与Post区别与范例讲解 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45151569

    get和post有什么区别

    get和post有什么区别,主要讲述get和post的详细区别,在servlet当中两种方式有什么不同

    java web学习_浅谈request对象中get和post的差异

    摘要:本文将对 Java Web 中 Request 对象中 GET 和 POST 方法的差异进行分析和比较,通过代码示例和输出结果,展示 GET 和 POST 方法的不同之处,并分析其优缺点。 GET 方法和 POST 方法都是服务器的请求方式,...

    Servlet中doGet与doPost的区别

    Servlet中`doGet`与`doPost`方法的区别是理解和掌握Servlet工作原理的关键,它们分别对应HTTP协议中的GET和POST请求方式,下面将详细阐述这两个方法的特点及其应用场景。 ### 一、`doGet`与`doPost`的基本概念 `...

    服务器端测试GET、POST

    GET和POST主要用于客户端(如Android前端)与服务器之间的通信,而处理中文乱码问题则是一个额外的技术挑战。 GET方法是HTTP中最基础的请求类型,通常用于获取服务器上的资源。它将参数附加到URL中,以问号(?)...

    tomcat GET请求与POST请求

    POST请求的数据包含在请求正文中,因此可以处理比GET请求更大的数据量,没有明确的大小限制,但实际大小受到服务器和客户端配置的影响。POST请求不是幂等的,因为多次执行可能会导致资源的多次创建或修改。在安全性...

    javaWEB总结(5):GET与POST请求

    了解GET和POST请求的区别以及如何在Servlet中处理它们,对于Java Web开发者来说至关重要。通过实际的代码测试,你可以更好地掌握这些概念并应用到项目中。在`javaWeb_05`这个压缩包中,应该包含了实现这些功能的源...

    jsp与servlet的联系和区别

    Servlet可以处理各种类型的请求,包括但不限于HTTP GET和POST请求。它们是由Java编写,运行在Java虚拟机(JVM)上,因此具有跨平台的特性。Servlet提供了一个框架,让开发者可以编写可移植的Web应用程序组件,这些...

    java乱码综合解决方法(不区分get和post)

    Java中的乱码问题是一个常见的编程挑战,特别是在处理网络请求(如GET和POST)时。本文将深入探讨如何解决这些问题,并且不局限于特定的请求类型。首先,我们需要理解字符编码的基本概念,然后分析Java中可能出现...

    Servlet中文API文档 servlet

    HttpServlet提供了doGet()、doPost()等方法,分别对应HTTP的GET和POST请求。开发者通常重写这些方法来实现业务逻辑。 4. **Servlet生命周期**:Servlet的生命周期包括加载和初始化、服务、销毁三个阶段。Servlet...

    get、post请求中文乱码处理方式一

    在IT行业中,网络请求是应用程序与服务器之间交互的基础,GET和POST是最常见的两种HTTP请求方法。当我们在处理涉及中文字符的请求时,可能会遇到乱码问题。本文将详细阐述GET和POST请求中文乱码的处理方式,以帮助...

    post和get提交乱码处理

    首先,我们要理解POST和GET的区别。POST请求通常用于向服务器发送大量数据或修改服务器资源,而GET请求则用于获取信息,其参数包含在URL中。由于GET请求的数据是可见的,所以在处理中文字符时更容易出现乱码问题。 ...

    servlet-api中文文档

    它提供了doGet、doPost等方法来处理HTTP GET和POST请求,开发者通常会重写这些方法来实现业务逻辑。 JSP(JavaServer Pages)是另一种Java Web技术,它可以将HTML代码与Java代码混合编写,简化了视图层的开发。在`...

    Servlet API中文文档

    大部分Servlet开发都是基于这个类,因为它提供了处理GET和POST请求的默认行为。 3. `javax.servlet.ServletRequest`:这个接口代表了来自客户端的请求,包含了请求的所有信息,如请求参数、头信息和请求体。通过`...

Global site tag (gtag.js) - Google Analytics