JAVAweb三大组件

 * Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener)
  * Servlet是用来处理客户端请求的动态资源
  * Servlet的任务有:
    > 获取请求数据
    > 处理请求

    > 完成响应

Servlet会在接到第一次请求时被创建,也可以在在服务器启动时就被创建,这需要在配置文件<servlet>中添加一条配置信息    <load-on-startup></load-on-startup>,

标签中添加非负整数即可

  * Servlet接口方法:

前面三个为生命周期

    > void init(ServletConfig)

servlet的初始化方法,只在创建servlet实例时候调用一次

    > void service(ServletRequest,ServletResponse)

servlet的处理请求方法,在servle被请求时,会被马上调用,每处理一次请求,就会被调用一次。ServletRequest类为请求类,ServletResponse类为响应类

    > void destory()

servlet销毁之前执行的方法,只执行一次,用于释放servlet占有的资源,通常Servlet是没什么可要释放的,所以该方法一般都是空的

    > ServletConfig getServletConfig()

获取servlet的配置信息的方法,所谓的配置信息就是WEB-INF目录下的web.xml中的servlet标签里面的信息

    > String getServletInfo()

获取servlet的信息方法

特性:

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

l  线程不安全的!

 

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

配置文件中对应servlet的部分

  <servlet>
    <servlet-name>AServlet</servlet-name><!-- 此处名称可以随意写 -->
    <servlet-class>edu.AServlet</servlet-class><!-- 此处写类名 -->
  </servlet>


  <servlet-mapping>
    <servlet-name>AServlet</servlet-name><!-- 与上面名称对应 -->
    <url-pattern>/servlet/AServlet</url-pattern><!-- 此处是自动生成的路径,也可自己写 -->
  </servlet-mapping>




 1). 服务器创建Servlet:
  * 当Servlet第一次被请求时,或服务器启动时,服务器会创建Servlet实例。
  * 服务器默认是在servlet第一次被请求时创建Servlet实例,如果希望服务器启动时就创建Servlet实现需要在web.xml中配置
  * 服务器只为一个类型的Servlet创建一个实例对象,所以Servlet是单例的;


  2). 服务器初始化Servlet:
  * 当服务器创建Servlet实例后会马上调用Servlet的init(ServletConfig)方法,完成对Servlet的初始化;
  * init(ServletConfig)只会被调用一次
  * 服务器会在调用init()方法时传递ServletConfig参数
  
  3). 服务器使用Servlet处理请求:
  * 当Servlet被请求时,服务器会调用Servlet的service(ServletRequest,ServletResponse)方法
  * service(ServletRequest,ServletResponse)方法每处理一次请求,就会被调用一次,所以它可能会被调用N次
  * 因为Servlet是单例的,所以可能在同一时刻一个Servlet对象会被多个请求同时访问,所以这可能出现线程案例问题
  * Servlet不是线程案例的,这有助与提高效率,但不能让Servlet具有状态,以免多个线程争抢数据


  4). 服务器销毁Servlet
  * 服务器通常不会销毁Servlet,通常只有在服务器关闭时才会销毁Servlet
  * 服务器会在销毁Servlet之前调用Servlet的destory()方法
  * 可以在destory()方法中给出释放Servlet占有的资源,但通常Servlet是没什么可要释放的,所以该方法一般都是空的
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值