`
beckjacy
  • 浏览: 12211 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

servlet容器浅析

 
阅读更多
容器就是你的程序运行时需要的环境

1,Tomcat是Servlet的运行环境,即一个Servlet容器。

2,Servlet容器的作用是负责处理客户请求,当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。

3,Servlet容器的工作过程是:当客户请求某个资源时,Servlet容器使用ServletRequest对象把客户的请求信息封装起来,然后调用java Servlet API中定义的Servlet的一些生命周期方法,完成Servlet的执行,接着把Servlet执行的要返回给客户的结果封装到 ServletResponse对象中,最后Servlet容器把客户的请求发送给客户,完成为客户的一次服务过程。每一个Servlet的类都执行 init()、service()、destory()三个函数的自动调用,在启动时调用一次init()函数用以进行参数的初始化,在服务期间每当接收到对该Servlet的请求时都会调用Service()函数执行该Servlet的服务操作,当容器销毁时调用一次destory()函数。

4,典型的Servlet应用是监听器、过滤器的实现。

JSP运行原理:当Web服务器上的JSP页面第一次被请求执行时,JSP引擎先将JSP页面文件转译成一个Java文件,即Servlet,Java Servlet是基于服务器端编程的API,用Java Servlet编写的Java程序称为servlet,servlet通过HTML与客户交互。服务器将前面转译成的Java文件编译成字节码文件,再执行这个字节码文件来响应客户的请求。当这个JSP页面再次被请求时,只要该JSP文件没有被改动,JSP引擎就直接调用已装载的Servlet。
JSP和servlet的运行原理探讨
JSP是一个运行在服务器端的程序,而javascrīpt是运行在客户端的程序。两种程序是工作在不同的地方的,这一点不可以混淆。
Javascrīpt如何执行,服务器是不会知道的。
对于javascrīpt的代码在jsp页面中和普通的HTML代码意义上是完全一样的。大可不必理会,因为javascrīpt是在<sctipt>标记中的,而jsp是<%%>中的,而<%%>中的东西是不会到客户端去的。所以你可以利用JSP的规则来确定那些javascrīpt的片断输出到客户端。
<%page   language="java"%>在服务器端执行,<scrīpt   language=javascrīpt>客户端执行,由浏览器的Javascrīpt引擎解释执行.
  客户端用户填写 HTML 表单,发送请求。 将请求发送给 服务器端servlet(tomcat是servlet的容器)。 servlet 将该 HTTP 请求转换成一个 MQSeries 消息,并将其放入一个队列。 后端应用程序处理该消息,然后通过消息队列发回一个应答。 servlet 从队列中检索消息,并将其存放在一个 Java Bean 中。 然后 servlet 调用编译过的 Java Server Page(JSP) 并动态生成结果 HTML 页面。 JSP 从 Java Bean 检索出该页面需要的数据,将其合并到 HTML,然后将结果页面发送给客户端。
   JSP中的html代码和javascrīpt代码不会在服务器端执行,servlet 调用编译过的 Java Server Page(JSP) ,也就是运行由JSP编译成的class文件(运行的代码包括actionBean,formBean,一般的bean 和内嵌在JSP的Java代码).
apache是web服务器(不是客户端,大多数时候就是指代应用服务器,客户端一般都是web浏览器),tomcat是应用(java)服务器,它只是一个运行servlet的容器,可以认为是apache的扩展,但是可以独立于apache运行。一个Web运行程序(网站)可以有多个servlet,一般认为一个action就是一个servlet.
所谓Servlet是指运行在服务器端的Java小程序。用于响应客户端的请求。在默认情况下,Servlet采用一种无状态的请求-响应处理方式。Servlet代码的主要作用是为了增强Java服务器端的功能,它运行在服务器端,用于接收并且处理浏览器客户端发出的请求,该请求是通过配置文件web.xml的相关配置进行转发。也就是说Servlet是一个标准的Java类,它符合Java类的一般规则。和一般的Java类不同之处只是在于Servlet可以处理Http请求。
1.servlet是持久的。servlet只需Web服务器加载一次,后续又用到这个servlet,就不需要再加载。(所谓加载是指servlet加载进JVM运行)
2.servlet是与平台无关的。
3.servlet是可扩展的。

ActionServlet继承自javax.servlet.http.HttpServlet类,其在Struts framework中扮演的角色是中心控制器。它提供一个中心位置来处理全部的终端请求。控制器ActionServlet主要负责将HTTP的客户请求信息组装后,根据配置文件的指定描述,转发到适当的处理器Action。

JSP 工作原理
所有JSP页面,在执行的时候都会被服务器端的JSP引擎转换为Servelet(.java),然后又由JSP引擎调用Java编译器,将Servelet(.java)编译为Class文件(.class),并由Java虚拟机(JVM)解释执行。下面验证这一点:
分享到:
评论

相关推荐

    servlet基础与servlet容器模型

    servlet基础与servlet容器模型

    一个简单的servlet容器

    [深入剖析Tomcat]一书第二章中 一个简单的servlet容器实现

    简单的servlet容器实现

    简单的servlet容器实现

    servlet容器工作原理

    这是针对Tomcat中的servlet容器工作原理的详解

    Servlet 容器工作原理解析

    本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是如何启动的? Servlet 容器如何解析你在 web.xml 中定义的 ...

    SpringBoot之配置嵌入式Servlet容器.pdf

    SpringBoot配置嵌入式Servlet容器;注册Servlet三大组件;嵌入式Servlet容器自动配置原理以及启动原理

    Jetty 9 Servlet容器

    Jetty9 Servlet容器 Java服务

    Servlet容器模型

    Servlet容器模型的大致描述,个人觉得比较适合初学者学习和使用~

    简单的Servlet容器

    《深入剖析Tomcat》书中第二章代码,在此基础上做了修改详细请参考博客https://blog.csdn.net/TYOUKAI_/article/details/88540763

    jetty轻量级servlet容器

    Jetty 是一个用 Java 实现、开源、基于标准的,并且具有丰富功能的 Http 服务器和 Web 容器,可以免费的用于商业行为。Jetty 这个项目成立于 1995 年,现在已经有非常多的成功产品基于 Jetty,比如 Apache Geromino...

    Servlet容器工作原理深入讲解.pdf

    Servlet容器工作原理深入讲解.pdf

    resin4 servlet容器

    Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。...它不仅可以显示动态内容,而且它显示静态内容的能力也非常强,速度直逼APACHESERVER。许多站点都是使用该WEB服务器构建的

    JAVA WEB中Servlet和Servlet容器的区别

    主要介绍了JAVA WEB中Servlet和Servlet容器的区别,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下

    jetty servlet容器

    Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...

    Tomcat中的Host和Engine级别的servlet容器.docx

    Engine容器表示Catalina的整个Servlet引擎,如果使用了Engine容器,那么它总是处于容器层级的最顶层,添加到Enginer容器中的子容器通常是org.apache.catalina.Host 或者 org.apahce.catalina.Context的实现,默认...

    SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程图解

    主要介绍了SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    MOTAN - the fast C++ servlet container:C ++ Servlet容器-开源

    Servlet容器以Java Servlet API 2.3为蓝本。 用C ++编写。 开发人员在动态库中实现C ++ Servlet。 包括HTTP适配器。

    SpringBoot 注册自己的Servlet(三种方式)(源代码)

    Servlet 1,声明servlet及映射 2,加上@...目前使用Spring的,更多是在web方面,所以Spring更多的是依赖Servlet容器,哪怕是springboot擅长做独立可执行的微服务应用程序,其内部也包含一个嵌入式Jetty。

    Servlet过滤器使用

    这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain)...

    Servlet容器工作原理讲解

    可以深入的了解servlet的工作原理!

Global site tag (gtag.js) - Google Analytics