浅谈doGet和doPost

Servlet中的两个方法,一个是doPost(),另一个是doGet()方法,有很多朋友不知道什么时候用doPost来接受请求,什么时候用doGet来接受请求,其实很简单,get方式请求就用doGet方法来接受,post方式就用doPost方法来接受。哈哈,听到这里你可能想打人了,你会问那什么就算是get方式请求,什么就算是post方式请求呢?这个解释起来很简单,初了form表单的method="post"这种方式属于post方式提交,其它都是get方式提交,比方说什么超链接了,什么页面重定向了,这些方式访问Servlet都属于get方式提交。不过这里我要说一点了,也是最重要的一点,那就是forward跳转这种方式,它很特殊的,我们一起来看看:

-----------------------------------------------------------------------------------------
A.jsp页面内容
...
<form action="B.jsp">
    <input type="submit"/>
</form>
...
---------------------------------------------------------------------------------------
B.jsp页面内容
...
<jsp:forward page="MS"/>
...
-------------------------------------------------------------------------------------- 
MS指定的Servlet内容
...
public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {    System.out.println("doGet方法调用了");}
public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {    System.out.println("doPost方法调用了");}
...
---------------------------------------------------------------------------------------


        这个小例子猛一看你会这么理解,B.jsp通过forward访问Servlet,那么一定属于get方式请求了,一运行,结果还真是:doGet方法调用了。其实这是一个小误区,不信你改一下A.jsp,你把method改成post,再运行,看到什么了?是不是这里又显示成:doPost方法调用了,从这个小例子我们发现forward跳转访问Servlet说不定的感觉,其实我们要想弄明白这个问题,就要从forward本身来研究了。
        我们都知道forward跳转是转发请求,不转发地址的,简单点说,forward不但把请求的内容转发了,连同请求的方式也转发了,这样我们就明白了,B.jsp通过forward来访问Servlet到底是get还是post,关键要看A.jsp是如何请求B.jsp的,因为forward把请求的方式也转发了,这就是为什么A.jsp的提交方式变了,B.jsp访问Servlet的方式也变了的原因。

       以上是我对这个问题的一些自己的认识,希望大家多多交流!


文章出处:http://www.diybl.com/course/4_webprogram/ajax/ajaxxl/2008921/144266.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值