JAVA学习——Servlet

概述:

    

     Servlet是我们学习Java时比较核心也是比较基础的一个知识点。我们首先看一下它的定义:


Servlet(ServerApplet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修


改数据,生成动态Web内容。从这个概念我们可以知道,servlet是运行在服务器端,主要是接收浏览器的请求,然后


处理,返回数据给浏览器。狭义的servlet是指Java语言实现的一个接口,广义的servlet指任何实现了个servlet


口的类。而我们一般理解的servlet是指后者。


Servlet容器:

     

    当然学习servlet我们还需要了解另一个概念,那就是servlet容器。Servlet容器有时候也叫做Servlet引擎,


是Web服务器或应用程序服务器的一部分,负责处理客户请求、把请求传送给Servlet并把结果返回给客户。不同程序


的容器实际实现可能有所变化,但容器与Servlet之间的接口是由ServletAPI定义好的,这个接口定义了Servlet容器


在Servlet上要调用的方法及传递给Servlet的对象类。需要注意的是:Servlet不能独立运行,它必须被部署到


Servlet容器中,由容器来实例化和调用Servlet的方法,Servlet容器在Servlet的生命周期内包容和管理Servlet。


这也就和我们平时理解的容器与类的关系对应了起来,servlet容器会对servlet进行管理,而我们接触的servlet


依赖与servlet容易存在的一个实例化的类。

 

生命周期:


1、Servlet容器创建Servlet的一个实例


2、容器调用该实例的init()方法


3、如果容器对该Servlet有请求,则调用此实例的service()方法


4、容器在销毁本实例前调用它的destroy()方法


5、销毁并标记该实例以供作为垃圾收集

计算机生成了可选文字:Se「vlet容器十实例是否存在\一/了浏览器、是调用比《)方法生一调用se两ce《l啊应运行山四蒯山翻栽.处理请求同…一沐茹…国{'L”」}}法’容器停用”…一11销毁·+l}

说明:

    

    一旦请求了一个Servlet,就没有办法阻止容器执行一个完整的生命周期。容器在Servlet首次被调用时创建它的


一个实例,并保持该实例在内存中,让它对所有的请求进行处理。容器可以决定在任何时候把这个实例从内存中移


走。在典型的模型中,容器为每个Servlet创建一个单独的实例,容器并不会每接到一个请求就创建一个新线程,而


是使用一个线程池来动态的将线程分配给到来的请求,但是这从Servlet的观点来看,效果和为每个请求创建一个新


线程的效果相同,也就是说,servlet是单实例多线程的,所以如果servlet需要共享资源,则必须保证servlet是安


全的(这个只是先理解,具体如何实现还不太懂)。

 

特点:

   

    与传统的CGI(CommonGateway Interface)相比,JavaServlet具有更高的效率,更容易使用,功能更强大,具


有更好的可移植性,更节省投资。但是它也有自己的局限性,输出HTML语句还是采用了传统的CGI方式,是一句一句


的输出,编写和修改HTML非常不方便。所以之后Sun公司又推出了JSP(JavaServer Pages)技术,我们会在下篇文章中


对两者进行一个对比。


总结:


    servletjava学习中核心的一个知识点,对它的工作原理和生命周期还需要加深理解,查了一些资料,但是有


些东西还是不太明白,总感觉缺点什么,可能是实践的少吧,对它的具体原理还是缺乏了解,以及与容器的交互等,


都需要在后面的学习中加深了解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值