Servlet中doGet与doPost的区别

doGet和doPost其实就是用来接收前端传过来的数据,本质上都是请求方法。

通过JSP页面访问Servlet

首先我们要知道什么时候用到doGet和doPost:
Answer:当通过JSP页面访问Servlet时

我们可以通过JSP页面的表单或者超链接请求某个servlet。
通过JSP页面访问servlet的好处是JSP页面负责页面的静态信息处理,动态信息处理有Servlet完成。

  1. 通过表单访问servlet

    1
    2
    3
    4
    5
    <form action 访问="islogin" method="post">

    ....

    </form>
  2. 通过超链接访问Servlet
    在JSP页面中,可以单击超链接访问Servlet对象,同时可以通过链接向Servlet提交信息。
    示例:

    1
    <a herf ="loginSerlet? user=ty&pwd=zg">查看用户名和密码</a>

“查看用户名和密码”这个超链接就将userpwd的两个信息提交给Servlet处理。

工作原理

当服务器创建servlet对象后,servlet对象调用init方法初始化自己。
当服务器收到一个Servlet请求时,就会产生一个新进程,在这个线程中,让Servlet对象调用service()方法为请求做出响应。
service方法首先检查HTTP请求类型(get或post),并根据用户的请求方式,在service()方法中对应的调用doGet()或doPost()方法。

优点:
在Servlet类中重写doGet()或doPost()方法来响应用户的请求,可以增加响应的灵活度,同时减轻服务器的负担。

一般情况下无论用户请求是post或get,服务器的处理过程完全相同。
我们也可以在doPost()中写处理过程的代码,而在doGet()方法内再调用doPost方法。

Get和Post的区别:

  1. get是从服务器上获取数据,post是向服务器传送数据。
  2. 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
  3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
  4. GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
  5. 安全性问题。正如在1中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。
    所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
-------------本文结束感谢您的阅读-------------