首页 > 代码库 > [Java]Servlet&JSP
[Java]Servlet&JSP
在这里学习Servlet和JSP >> iAm333的专栏
【书籍】
孙鑫的《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则会说内容已提交,想刷新请再提交.
[Java]Servlet&JSP