JavaWeb三大组件之Servlet初次见面及生命周期

转载 2015年11月19日 12:20:36

Servlet是JavaWeb的三大组件(servlet、listner、filter)之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:

l  接收请求数据;

l  处理请求;

l  完成响应。

  例如客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己来编写,每个Servlet必须实现javax.servlet.Servlet接口。

实现Servlet有三种方式:

l  实现javax.servlet.Servlet接口;

l  继承javax.servlet.GenericServlet类;

l  继承javax.servlet.http.HttpServlet类;


生命周期方法:

l  void init(ServletConfig):出生之后(1次);

l  void service(ServletRequest request,ServletResponse response):每次处理请求时都会被调用;

l  void destroy():临死之前(1次);

 Servlet接口是Tomcat与外界通过三个方法通信的协议,这几个方法都是由tomcat调用,但是为了我们更好的使用Servlet,Tomcat提供了一个实现了Servlet接口的GeneralServlet,它在init方法中放入了无参数的init钩子方法,我们如果要做初始化只需要复写这个方法即可,GeneralServlet还实现了ServletConfig接口,那么我们就能直接调用ServletConfig接口中的方法获取配置参数。到目前为止,这几个生命方法和参数都是无协议的,直到HttpServlet,它继承与GeneralServlet,更进一步增加了一些协议相关的方法,如doGet、doPost,这个类在service方法中通过判断请求的方式,调用相应的钩子方法,所以我们只需要复写这些方法即可。HttpServletRequest、HttpServletResponse分别是ServletRequest、ServletResponse的子类,提供了协议相关的一些方法,Tomcat在接收到Http请求之后,创建了HttpServletRequest、HttpServletResponse传入service方法,所以在HttpServlet中的service方法中通过强转得到HttpServletRequest、HttpServletResponse。

特性:

l  单例,一个类只有一个对象;当然可能存在多个Servlet类!

l  线程不案例的,所以它的效率是高的!

不要在Servlet中创建成员!创建局部变量即可!

             l  可以创建无状态成员!

                         l  可以创建有状态的成员,但状态必须为只读的!


 

Servlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。

在Servlet接口中还存在三个我们不熟悉的类型:

l  ServletRequest:service() 方法的参数,它表示请求对象,它封装了所有与请求相关的数据,它是由服务器创建的;

l  ServletResponse:service()方法的参数,它表示响应对象,在service()方法中完成对客户端的响应需要使用这个对象;

l  ServletConfig:init()方法的参数,它表示Servlet配置对象,它对应Servlet的配置信息,那对应web.xml文件中的<servlet>元素。


JavaWeb三大组件(Servlet、Filter、Listener)

JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet、Filter,比...
  • xiaojie119120
  • xiaojie119120
  • 2017年06月15日 10:17
  • 2986

javaweb三大组件之Servlet

* Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener)   * Servlet是用来处理客户端请求的动态资源   * Servlet的任务有:     > 获...
  • z498596750
  • z498596750
  • 2016年09月16日 12:55
  • 2154

web三大组件之一——Servlet

1. 什么是Servlet   * Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener)   * Servlet是用来处理客户端请求的动态资源   * S...
  • lkk1344
  • lkk1344
  • 2015年10月27日 13:06
  • 2183

【Servlet 高概率 面试题】 【Servlet三大组件(Listener,Filter,Servet)】:生命周期和对象创建顺序

【Servlet 高概率 面试题】---考察servlet理解,熟悉程度。 【Servlet三大组件(Listener,Filter,Servet)】:生命周期长短,和加载(对象创建)顺序是怎样的?...
  • qq_20597149
  • qq_20597149
  • 2017年08月31日 17:59
  • 159

JavaWeb三大组件之Filter

1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年11月24日 10:11
  • 1263

JavaWeb三大组件之一Servlet【Servlet接口】

1:-2:-3:-4:-13Servlet概述生命周期方法:void init(ServletConfig):Servlet在第一次被创建对象后,由web服务器马上调用init方法。对象从被创建直到被...
  • Marvel__Dead
  • Marvel__Dead
  • 2017年05月24日 00:08
  • 628

JavaWeb三大组件之Listener

三大组件:Servlet、 Listener、Filter Java中用到监听器的地方:AWT、SAX,监听器中肯定有事件源、事件、监听器。监听器注册到事件源,当事件源发生某件特定的事儿的时候,就触发...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年11月24日 08:13
  • 2194

javaweb三大组件

javaWeb有三大组件:Filter、Servlet、Listener jsp有九大内置对象:application、session、request、response、out、page、pag...
  • pangdaren
  • pangdaren
  • 2017年08月28日 15:15
  • 311

servlet的监听器和三大作用域

servlet的八大监听器 Servlet三大作用域 1、request  2、session 3、ServletContext 举例 监听三大作用域 监听request作用域 reque...
  • panhaigang123
  • panhaigang123
  • 2017年12月09日 17:08
  • 149

JavaWeb三大组件

ServletListener事件源:(前三个为 JavaWeb三大域)!ServletContext 生命周期监听:ServletContextListener,它有两个方法,分别在...
  • yeiweilan
  • yeiweilan
  • 2017年04月25日 21:41
  • 369
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaWeb三大组件之Servlet初次见面及生命周期
举报原因:
原因补充:

(最多只允许输入30个字)