1iqueen

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在这里学习Servlet和JSP

>> Servlet&JSP的那些事儿

>> servlet

【书籍】

孙鑫的《Servlet/JSP深入详解:基于Tomcat的Web开发》

林信良的《JSP&Servlet学习笔记(第二版)》

 

Servlet容器处理请求的过程

  在开始正文之前,让我们复习并细化一下Servlet容器处理请求的过程。

  1)用户点击一个链接,指向了一个servlet而不是一个静态页面。

  2)容器“看出”这个请求是一个Servlet,所以它创建了两个对象HttpServletRequest和HttpServletResponse。

  3)容器根据请求中的URL找到正确的Servlet,为这个请求创建或分配一个线程,并把请求和响应对象传递给这个Servlet线程。

  4)容器调用Servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法。这里假设调用doGet()方法。

  5)doGet()方法生成动态页面,并把这个页面“塞到”响应对象里,需要注意的是,容器还有响应对象的一个引用!

  6)线程结束,容器把响应对象转换为一个HTTP响应,并把它发回给客户,然后删除请求和响应对象。

那么问题来了:doGet()和doPost()的区别?

  1.doGet和doPost的区别,在什么时候调用,为什么有时doPost中套用doGet
  2.提交的form     method=Post就执行DOPOST,否则执行GOGET 套用是不管method是post还是get都执行dopost方法
  3.get:你可以通过URL传参数。http://www.csdn.net/index.asp?user=1234    , Post不行  
  4.你的表单提交都有方法的,如果提交为get就调用get方法,用post就调用post方法.   get显示你传过去的参数,post则不显示.
  5.通常的写法:先用doGet(),然后在doPost()中调用doGet(),这样就万无一失了
  6. 简单的说,get是通过http     header来传输数据,有数量限制,而post则是通过http     body来传输数据,没有数量限制。
  7.还有一点:get和post提交的数据量是不一样的.  
      get好像最多只能在url后跟64K(?具体多少忘记了),  
      post好像没这个限制,至少我post过5M以上的文本    
      还有url刷新时get好像可以不用重复提交原来提交的数据,  
      而post则会说内容已提交,想刷新请再提交.

posted on 2015-01-07 16:25  1iqueen  阅读(318)  评论(0编辑  收藏  举报