doget和dopost区别(dopost方法用来干嘛的)

admin 206 0

这篇文章给大家聊聊关于doget和dopost区别,以及dopost方法用来干嘛的对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

一、doget()和dopost()的区别

1、doget()和 dopost()分别对应 http协议中的 GET和 POST方法,请求是 GET方法就调用 doget(),请求是 POST方法就调用 dopost()方法。

2、GET和 post方法有本质的区别;GET只有一个流,参数附加到 url后,大小个数都有严格的限制,且只能是字符串;POST的参数不通过 url而是通过其他流的传递参数,所以可以很大,也可以传递二进制数据,例如上传文件。

3、POST比 GET安全;由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用GET调用。GET调用会把传递给Servlet的参数在 URL里显示出来,这样对系统安全方面存在问题;而 POST请求则通过其他流传递参数,不会在 URL中显示,更安全;例如用户登录时,如果是用 GET调用会把用户账号密码都显示在 URL中,用 POST调用则不会显示。

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

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

二、Servlet中doGet与doPost的区别..

doGet是处理客户端发来的Get请求,doPost是处理客户端发来的Post请求,它们的区别可以从以下7个方面来说明:

1、客户端(一般指浏览器)生成的方式

get:form中method属性为get时;或者直接在URL地址栏中输入URL,需要传递参数时,直接在URL后面拼接“?name=张三&age=18”这样的查询参数字符串;

post:form中method属性为post。

get:表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体;

post:表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。

get:服务器采用Servlet中的doGet来获取变量的值;

post:服务器采用Servlet中的doPost来获取数据。

get:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制;

post:适合大规模的数据传送。因为是以实体的方式传送的。

get:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低;

post:安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在HTTP HEADER内一起传送到ACTION所指的URL中,用户是看不见的。

参考资料来源:百度百科-servlet

三、servlet中 service dopost doget方法之间的区别

1、Service是类GenericServlet中最重要的方法,每次客户向服务器发出请求时,服务器就会调用这个方法。程序员如果想对客户的请求进行响应的话就必须覆盖这个方法,并在这个方法中加入自己的代码来实现对客户的响应。

2、Service有两个参数(ServletRequest和ServletResponse),ServletRequest保存了客户向服务器发送的请求,而ServletResponse用来设置如何对客户进行响应。

3、init()方法(Servlet的两个生命周期函数之一,另一个是destroy())和service()方法的区别,当改变源程序而重新生成一个新的.class文件的时候,此时如果再次执行该Servlet,会发现执行的结果跟没做更改的时候一样,原因就是因为相同的Servlet的init只执行一次,所以在调试Servlet的时候要不断改变文件名和类名,或者重新启动服务(Tomcat或者JWS等)。

4、就是说,init()方法仅在服务器装载Servlet时才由服务器执行一次,而每次客户向服务器发请求时,服务器就会调用Service()方法。

四、doGet和doPost区别

Servlet中doGet与doPost的区别:

doGet和doPost其实就是用来接收前端传过来的数据,本质上都是请求方法。因为servlet的请求类型有get和post两种类型。get调用,一般用于获取服务器信息,并将其作为响应返回给客户端。即当经由web浏览器、HTML、JSP直接访问servlet的url时,调用;post用于把客户端数据传送到服务器端,但也有不好的地方。

当服务器创建servlet对象后,servlet对象调用init方法初始化自己。以后每当服务器接收到一个servlet请求时,都会调用产生一个新线程,在这个新线程中,servlet对象调用service对象对HTTP请求类型进行检查,判断出请求类型是get还是post,在service方法中,根据请求类型对应的调用doGet、doPost方法。

1、get请求,页面传输的信息会以键值对的形式,显示在地址栏中的url后面达到传送目的的。

2、post请求,是根据http请求的附件传送的。在地址栏没有明文显示。

3、get请求对提交的数据有大小的限制,通常在1024字节左右。不用来提交大数据。

4、post请求对提交的数据大小没有限制。

一般servlet都是默认用get方式接受前端数据,因为get请求类型可以很方便的控制链接的目标地址。

五、1、什么情况下调用doGet()和doPost()

1.doGet和doPost的区别,在什么时候调用,为什么有时doPost中套用doGet

2.提交的form method=Post就执行DOPOST,否则执行GOGET套用是不管method是post还是get都执行dopost方法

4.你的表单提交都有方法的,如果提交为get就调用get方法,用post就调用post方法. get显示你传过去的参数,post则不显示.

5.通常的写法:先用doGet(),然后在doPost()中调用doGet(),这样就万无一失了,当然也可以反过来调用。你的servlet如果是继承自HttpServlet,就必须重写它里面的两个虚方法doGet和doPost,也就是说,先不管别的servlet或jsp会去调用哪个方法,这两个方法都应该有。<form action="myServlet" method="get"> method属性的值是get,它就去调用对应servlet的doGet方法。同理,method属性的值是get,它就去调用对应servlet的doPost方法。

6.还有一点:get和post提交的数据量是不一样的. get最多只能在url后跟255个字符 post没这个限制,在一个方法里面调用另一个方法”只能在一个方法里边去调用另一个,例如doGet中调用doPost(或相反)而不能相互调用,否则形成死循环。

7、service()方法是由服务器自动调用的,而init()方法是由service()方法帮助调用进行初始化工作的。

8、servlet的整个生命周期中只产生一个对象,在第一次请求的时候被初始化(只一遍),初始化后先调用init方法(只一遍),每个请求,调用一遍service--service--doGet/doPost,然后调用destroy方法卸载,生命周期结束。

六、请问servlet里的dopost 和doget分别是做什么的

1、doget是接收网页用get方法时调用的

2、get方法就象你在网页的地址栏里看到的一堆乱码,也就是url后面有参数

3、post就是用表单传过去的,就好象把数据都打成包发过去一样

4、其实知不知道都没什么,你可以在servlet里把功能都写到一起

5、然后在一个方法里调用另一个方法就可以了

6、public void doPost(HttpServletRequest request,HttpServletResponse)

7、throws ServletException,IOException

8、呵呵,手上没有servlet的书,不知道方法写的对不对,不过大概就是这个意思

七、什么情况下调用doget和dopost

1.什么情况下调用doGet()和doPost()?

第一:你的servlet如果是继承自HttpServlet,就必须重写它里面的两个虚方法doGet和doPost,也就是说,先不管别的servlet或jsp会去调用哪个方法,这两个方法都应该有。

第二:至于它调用哪个方法,就看提交方式

<form action="myServlet" method="get">

method属性的值是get,它就去调用对应servlet的doGet方法。

同理,method属性的值是get,它就去调用对应servlet的doPost方法。

一般来说,不管采用那种提交方式,在servlet里要做的事情是一样的。所以,我们很多情况下,在一个方法里面调用另一个方法,这样随你那种方式提交的,都可以转去做一种处理。

好了,文章到此结束,希望可以帮助到大家。