码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet的学习日志

时间:2015-07-13 06:43:54      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

Servlet 是在服务器上运行的小程序。它的生命周期是:

  1. 客户端请求该 Servlet;

  2. 加载 Servlet 类到内存;

  3. 实例化并调用init()方法初始化该 Servlet;

  4. service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doGet()、doPut()、doTrace()、doDelete()、doOptions());

  5. destroy()。

创建Servlet对象的时机:

  1. Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。

  2. 在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet 对象的service方法。

  3. Servlet Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。

    <servlet>
           <servlet-name>Init</servlet-name>
           <servlet-class>org.xl.servlet.InitServlet</servlet-class>
           <load-on-startup>1</load-on-startup></servlet>

servlet运行于servlet容器中。servlet容器可以接受客户端的请求并作出相应。通常我们用到的就是http的请求和响应了。容器通过url来判断请求应该由哪个servlet来处理。这是就会调用这个servlet的service方法。平时我们写servlet时也是覆盖这个方法。
HttpServlet实际上调用了doGet或者doPost方法,所以继承自这个类的时候只要覆盖doGet和doPost方法。

http的get方法是将你要传输的数据放在url后的,也就是我们常用的test.jsp?name=aaa&age=10这种格式,数据都是可以通过url就可以看到了,你在网页中的属性就能看到这个url,这是get方法,由于受到http协议的限制,这种方式传输数据有大小限制,1024,为了能够传输更多的数据,你可以采用post,post是将数据放到了http的Content中,这就不受http协议的影响了,而且传输的数据不能直接被看到(登陆的用户名和密码可不能用get哦)。大量的数据或是文件上在数据,都只能用post来传而且get方法提交的页面能够通过history.back()回退,但post的数据就不能,回退时告诉已经过期,应为你已经post出去了,就不能取回来了。 
简单的说,get是通过http header来传输数据,有数量限制,而post则是通过http body来传输数据,没有数量限制.
servlet就是专门用来处理http请求的,所以对应不同数据传输方式的两种方法就是doGet()和doPost().

Servlet的学习日志

标签:

原文地址:http://my.oschina.net/u/2411776/blog/477664

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!