java servlet的工作原理是什么

 我来答
小童鞋_成er
2013-03-05 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
Servlet是运行在Servlet容器中的,由Servlet容器来负责Servlet实例的查找、创建以及整个生命周期的管理,Servlet整个生命周期可以分为四个阶段:类装载及实例创建阶段、实例初始化阶段、服务阶段以及实例销毁阶段。
类装载及实例创建阶段

默认情况下,Servlet实例是在接受到第一个请求时进行创建并且以后的请求进行复用,如果有Servlet实例需要进行一些复杂的操作,需要在初始化时就完成,比如打开文件、初始化网络连接等,可以配置在服务器启动时就创建实例,具体配置方法为在声明servlet标签中添加<load-on-startup>1</load-on-startup>标签。
初始化 init(ServletConfig config)

一旦Servlet实例被创建,将会调用Servlet的inint方法,同时传入ServletConfig实例,传入Servlet的相关配置信息,init方法在整个Servlet生命周期中只会调用一次。
服务 services()

为了提高效率,Servlet规范要求一个Servlet实例必须能够同时服务于多个客户端请求,即service()方法运行在多线程的环境下,Servlet开发者必须保证该方法的线程安全性。
销毁 destory()

当Servlet容器将决定结束某个Servlet时,将会调用destory()方法,在destory方法中进行资源释放,一旦destory方法被调用,Servlet容器将不会再发送任何请求给这个实例,若Servlet容器需再次使用该Servlet,需重新再实例化该Servlet实例。

二、Servlet执行流程

web服务器接受到一个http请求后,web服务器会将请求移交给servlet容器,servlet容器首先对所请求的URL进行解析并根据web.xml 配置文件找到相应的处理servlet,同时将request、response对象传递给它,servlet通过request对象可知道客户端的请求者、请求信息以及其他的信息等,servlet在处理完请求后会把所有需要返回的信息放入response对象中并返回到客户端,servlet一旦处理完请求,servlet容器就会刷新response对象,并把控制权重新返回给web服务器。

三、与其它技术的比较

与其它服务相比servlet有以下的一些优点:

1、运行速度上比CGI快,因为使用了多线程
2、servlet使用了标准的api,可被许多web服务支持
3、与系统无关性,一次编译多次使用

转自http://www.javaeye.com/topic/952866
心系pong
2013-03-06
知道答主
回答量:10
采纳率:0%
帮助的人:8.8万
展开全部
工作原理:首先是在启动的时候,进行初始化,执行init方法;到了第二步就是运行阶段,执行service方法,最后到了销毁阶段,执行destroy.它的工作原理相当于是servlet的生命周期。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一数一道
推荐于2017-10-12 · TA获得超过1751个赞
知道小有建树答主
回答量:369
采纳率:75%
帮助的人:217万
展开全部
  servlet本质上就是java类嘛。不过是有特殊规范的java类而已。下面就说一说为什么servlet要有特殊规范。
  首先,考虑一下什么地方用servlet,WEB应用,而且是需要servlet容器的,比如说tomcat。
  我们想一想,假设客户端通过http协议传来请求被tomcat封装成了Request,Response。
  tomcat要调用servlet,当然要知道servlet的接口对吧。servlet要在servlet容器tomcat中运行当然要实现相应的接口对吧。
  所以servlet有init(),destroy(),doGet(),doPost()接口,是为了让servlet容器调用。servlet只管处理业务逻辑,而其他的网络连接之类的工作都交给servlet容器(如:tomcat)这样的中间件来处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
该用户未设置网名
2013-03-05
知道答主
回答量:32
采纳率:0%
帮助的人:22.5万
展开全部
Servlet它可以分为3个阶段;初始化,运行,销毁。
初始化阶段:
1,Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。
2,然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。
3,Servlet容器创建一个servlet对象。
4,Servlet容器调用servlet对象的init方法进行初始化。
运行阶段:
当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest servletResponse对象。然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。
销毁阶段:
当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。
在这里该注意的地方:
在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式