`
beckjacy
  • 浏览: 12593 次
  • 性别: 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)解释执行。下面验证这一点:
分享到:
评论

相关推荐

    Struts1工作原理浅析

    具体操作细节取决于所使用的IDE和Web容器的具体版本,但总体流程相似,涉及解析依赖关系、配置Servlet监听器和初始化参数、以及定义资源定位符等步骤。 通过上述分析,我们可以看出,Struts框架通过引入MVC模式,...

    流行java技术架构浅析借鉴.pdf

    5. **对Servlet的依赖**:Struts在处理Action时需要Servlet API,限制了其在非Servlet容器环境下的使用。 总的来说,Struts作为早期的Java Web开发框架,尽管存在一些局限性,但它为后来的框架设计提供了许多启示。...

    基于Java的Web开发技术浅析 (1).zip

    在本压缩包中的"基于Java的Web开发技术浅析 (1).pdf"可能就包含了关于WAR文件的详细解析,以及如何在Web容器中部署和运行WAR文件的方法。 总的来说,Java Web开发技术是一个庞大的领域,涵盖了从服务器端编程、...

    JFinal技术架构浅析.doc

    - **空间架构**:从物理部署的角度看,JFinal 是一个标准的Servlet容器应用,可以运行在任何支持Servlet的Web服务器上,如Tomcat、Jetty等。它不需要额外的中间件或服务层,使得部署简单且快速。 - **逻辑架构**...

    浅析Java_web程序之客户端和服务器端交互原理.doc

    Servlet容器(如Tomcat)会解析HTTP请求,调用相应的Servlet方法处理请求,然后通过ServletResponse对象返回响应。 总的来说,Java Web程序的客户端和服务器端交互原理涉及到网络通信协议的深刻理解和Java编程技术...

    深入浅析TomCat Session管理分析

    Tomcat作为广泛使用的开源Servlet容器,其内部的Session管理机制对于理解Web应用的运行至关重要。本文将探讨Tomcat如何管理和实现Session,以及在集群环境下的Session同步策略。 **1. Session接口与实现** Tomcat...

    浅析SpringBoot及环境搭建过程

    2. 内嵌Servlet容器:Spring Boot可以内嵌Tomcat,这样我们无需以war包的形式部署项目。 3. 提供starter简化Maven配置:使用Spring或者SpringMVC我们需要添加大量的依赖,而这些依赖很多都是固定的,这里Spring Boot...

    浅析JAVA中过滤器、监听器、拦截器的区别

    监听器通常用于监控Web应用或Servlet容器中的事件;而拦截器则更多地用于特定框架中,以提供更为精细和灵活的控制。在实际开发中,合理选择和使用这三种组件,可以有效提升Web应用的结构清晰度和功能扩展性。

    深入浅析Spring-boot-starter常用依赖模块

    深入浅析Spring-boot-starter常用依赖模块 Spring-boot-starter是一种基于Spring框架的依赖模块,它提供了许多实用的功能和配置,帮助开发者快速开发企业级应用程序。下面我们将详细介绍Spring-boot-starter常用...

    深入浅析Centos 7系统的Tomcat服务器

    作为一款轻量级应用服务器,Tomcat主要承担Servlet和JSP容器的角色。在实际部署中,尽管它也能处理HTML页面,但由于对静态内容的处理能力相对较弱,通常会与Apache HTTP服务器或Nginx等更专业的Web服务器结合使用,...

    浅析Java Web错误/异常处理页面

    当Java Web应用程序遇到错误或异常时,如果不进行自定义处理,通常会显示Tomcat或其他Web容器默认的错误页面,这通常是不满足实际需求的。 在Java Web中,我们可以通过配置`web.xml`文件来自定义错误处理页面。例如...

    基于BS架构微博系统任务书.docx

    服务器方面选择了Apache Tomcat 7.0,这是一款免费开源的Servlet容器,能够运行Java Web应用。 #### 三、系统功能设计 - **首页展示**:展示最新热门微博信息,支持未登录状态下查看。 - **用户管理**:支持用户...

Global site tag (gtag.js) - Google Analytics