Servlet的学习日志

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

  1. 客户端请求该 Servlet;小程序

  2. 加载 Servlet 类到内存;服务器

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

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

  5. destroy()。url

建立Servlet对象的时机:spa

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

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

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

    <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().

相关文章
相关标签/搜索