摘要:盡管大多數(shù)的服務(wù)器有支持腳本語(yǔ)言的插件,通過(guò)這些腳本語(yǔ)言,比如,,,可以產(chǎn)生動(dòng)態(tài)的內(nèi)容,但是服務(wù)器大多數(shù)旨在為靜態(tài)頁(yè)面服務(wù)。
Java服務(wù)器
??作為Java工程師,服務(wù)器對(duì)于我們的開(kāi)發(fā)工作很重要,將我們開(kāi)發(fā)好的項(xiàng)目放到服務(wù)器上用戶(hù)才可以使用。我們常用到的服務(wù)器有Tomcat、Apache、Nginx等等。對(duì)于我們所開(kāi)發(fā)的應(yīng)用,如何選擇合適的服務(wù)器是個(gè)問(wèn)題。下面簡(jiǎn)單的介紹Web服務(wù)器、Servlet容器、應(yīng)用服務(wù)器的基本概念以及各種服務(wù)器的應(yīng)用場(chǎng)景。
??本文是Google上查詢(xún)的幾遍文章的部分截?cái)啵易约杭由狭酥形姆g。
??Apache、IIS、Nginx
Features and Responsibility??Web Servers are responsible for serving static content e.g. HTML over HTTP protocol.
??Web服務(wù)器的主要職責(zé)是服務(wù)靜態(tài)頁(yè)面,例如,以HTTP協(xié)議傳輸?shù)腍TML頁(yè)面
??In a simple situation,a user type in a URL in browser(a client),and get a web page to read.So what the server does is sending a web page to the client.The transformation is in HTTP protocol which specifies the format of request and response message.
??一個(gè)簡(jiǎn)單的應(yīng)用場(chǎng)景,用戶(hù)在瀏覽器(客戶(hù)端)輸入U(xiǎn)RL并且開(kāi)始瀏覽網(wǎng)頁(yè)。那么服務(wù)器所做的就是發(fā)送一個(gè)靜態(tài)頁(yè)面到客戶(hù)端,傳輸?shù)男畔⑹峭ㄟ^(guò)指定了請(qǐng)求和響應(yīng)格式的HTTP協(xié)議。
??Tomcat、Jetty
Features and Responsibility??A servlet-container supports only the servlet API(including JSP,JSTL)
??Servlet容器僅僅支持Servlet API,包括JSP、JSTL
??Servlet container are only responsible for generating HTML by executing JSP and Servlet on Server side.So servlet container is essentially a part of a web server that interacts with the servlets.
??Servlet容器唯一的職責(zé)就是通過(guò)執(zhí)行服務(wù)器上的JSP和Servlet來(lái)產(chǎn)生HTML頁(yè)面。那么Servlet容器本質(zhì)上是Web服務(wù)器的一部分,只不過(guò)加上了和Sevlet交互的接口。
??Servlet is an interface defined in javax.servlet package.It declares three essential methods for the life cycle of a servlet – init(),service(),and destroy().They are implemented by every servlet and invoked at specific times by the server.
??Servlet是定義在javax.servlet包下面的接口。對(duì)于一個(gè)Servlet的聲明周期,它聲明了三種內(nèi)在的方法——init(),servie()和destroy().在服務(wù)器上每一個(gè)Servlet被喚醒的時(shí)候,他們都會(huì)執(zhí)行。
How Servlet Container and web server process a request ?
Web server receives HTTP request
Web server forwards the request to servlet containter
The servlet is dynamically retrieved and loaded into the address space of the container,if it is not in the container.
The container invokes the init() method of the servlet for initialization(invoked once when the servlet is loaded first time)
The container invokes the service() method of the servlet to process the HTTP request,read data in the request and formulate a response.The servlet remains in the container’s address space and can process other HTTP requests.
Application Server Example??WebSphere,WebLogic,JBoss
Features and Responsibility??Application Server is responsible for generating dynamic content by executing server side code e.g. JSP,Servlet or EJB.
??應(yīng)用服務(wù)的主要職責(zé)就是通過(guò)執(zhí)行服務(wù)器代碼產(chǎn)生動(dòng)態(tài)頁(yè)面,列如,JSP,Servlet或者EJB。
??Application server is responsible for serving dynamic content,managing EJB pool,facilitating distributed transation,facilitating application lookup over JNDI,application security and others.
??應(yīng)用服務(wù)器的主要任務(wù)是服務(wù)動(dòng)態(tài)內(nèi)容,管理EJB Pool,促進(jìn)事務(wù)分配,促進(jìn)應(yīng)用查找JNDI,應(yīng)用安全等等。
??An application server supports the whole JavaEE - EJB,JMS,CDI,JTA
??應(yīng)用服務(wù)器支持整個(gè)JavaEE體系
??An application usually includes a Web server,but also adds a lot of more features.The most important is that it manages objects.Whether they will be Servlets,EJBs,JMS listenters.
??一個(gè)應(yīng)用服務(wù)器通常包括一個(gè)Web服務(wù)器,但是額外加了很多特性。最重要的就是它管理對(duì)象(Servlets,EJB,JMS)
??Tomcat is not exactly an application server, it"s more of a servlet engine or web container or also known as servlet containers because it provides the runtime environment for Servlet and JSP but doesn"t provide the services like EJB and distributed transaction which are a key feature of the application server in Java JEE world
??Tomcat不完全是一個(gè)應(yīng)用服務(wù)器,它只是一個(gè)Servlet引擎或者是一個(gè)Web容器或者是我們眾所周知的Servlet容器,因?yàn)樗惶峁┝薙ervlet和JSP的運(yùn)行環(huán)境,但是沒(méi)有提供像是EJB和事務(wù)控制的部分,而這部分才是JEE領(lǐng)域里面應(yīng)用服務(wù)器的特點(diǎn)。
??It’s expected from a Web server to provide HTTP protocol level service while application server is supposed to provide more powerful and dynamic Web service and business level service via EJB(Enterprise Java Beans).Essential services like Database connection pooling is not only provided by application server but also by Servlet containers like Tomcat.
??可以預(yù)計(jì)的是一個(gè)Web服務(wù)器提供HTTP協(xié)議層次的服務(wù),應(yīng)用服務(wù)器應(yīng)該是提供更多的強(qiáng)大的動(dòng)態(tài)的Web服務(wù),并且包括商務(wù)級(jí)別的服務(wù)經(jīng)由EJB。像數(shù)據(jù)庫(kù)連接池這樣必要的服務(wù)不僅僅是應(yīng)用服務(wù)器支持,像是Tomcat這樣的Servlet容器也支持。
??You need a Web server like Apache HTTPD if you are serving static web pages.If you have a Java application with just JSP and Servlet to generate dynamic content then you need Servlet containers like Tomcat or Jetty while,if you have JavaEE application using EJB,distributed transation,messaging and other fancy features than you need a full fledged application server like JBoss,WebSphere or WebLogic.
??如果你為靜態(tài)頁(yè)面提供服務(wù),你就需要像Apache HTTPD這樣的Web服務(wù)器。如果你有一個(gè)僅僅是JSP和Servlet的JAVA應(yīng)用去生成動(dòng)態(tài)的頁(yè)面內(nèi)容,你需要一個(gè)像Tomcat或者Jetty這樣的Servlet容器。如果你的JAVAEE應(yīng)用使用了EJB,事務(wù)管理,消息和其他一些復(fù)雜華麗的特點(diǎn),你就需要一個(gè)完全成熟的應(yīng)用服務(wù)器,列如JBoss,WebSphere或者WebLogic.
??For example,one of the popular setups is Apache fronting Tomcat or Ngnix fronting Tomcat
??比如,一個(gè)非常流行的做法就是在Tomcat上面加一Apache或者是在Tomcat上加Nginx服務(wù)。
??What is the difference between application server and web server ?
??Web Server is designed to serve HTTP Content. Application Server can also serve HTTP Content but is not limited to just HTTP. It can be provided other protocol support such as RMI/RPC
??Web服務(wù)器旨在為HTTP內(nèi)容提供服務(wù)。應(yīng)用服務(wù)器也可以為HTTP內(nèi)容提供服務(wù),但是它不僅僅限于HTTP,它可以提供其他的協(xié)議支持,例如RMI/RPC。
??Web Server is mostly designed to serve static content, though most Web Servers have plugins to support scripting languages like Perl, PHP, ASP, JSP etc. through which these servers can generate dynamic HTTP content.
??盡管大多數(shù)的Web服務(wù)器有支持腳本語(yǔ)言的插件,通過(guò)這些腳本語(yǔ)言,比如PHP,ASP,JSP,可以產(chǎn)生動(dòng)態(tài)的HTTP內(nèi)容,但是Web服務(wù)器大多數(shù)旨在為靜態(tài)頁(yè)面服務(wù)。
??Most of the application servers have Web Server as integral part of them, that means App Server can do whatever Web Server is capable of. Additionally Application Server have components and features to support Application level services such as Connection Pooling, Object Pooling, Transaction Support, Messaging services etc.
??大多數(shù)的應(yīng)用服務(wù)器都包括Web服務(wù)器來(lái)構(gòu)成他們完整的體系,這也就意味著應(yīng)用服務(wù)器可以做任何Web服務(wù)器有能力做的事情。除此之外,應(yīng)用服務(wù)器包含了一些能夠達(dá)到應(yīng)用層次的組件和特點(diǎn),例如連接池,對(duì)象池,事務(wù)支持,消息服務(wù)等。
??As web servers are well suited for static content and app servers for dynamic content, most of the production environments have web server acting as reverse proxy to app server. That means while service a page request, static contents such as images/Static html is served by web server that interprets the request. Using some kind of filtering technique (mostly extension of requested resource) web server identifies dynamic content request and transparently forwards to app serve
??對(duì)于靜態(tài)頁(yè)面來(lái)說(shuō)Web服務(wù)器很適,而應(yīng)用服務(wù)器適合動(dòng)態(tài)內(nèi)容,但是大多數(shù)的生產(chǎn)環(huán)境都是有一個(gè)Web服務(wù)器作為應(yīng)用服務(wù)器的反向代理。這就意味著一個(gè)頁(yè)面的請(qǐng)求,像圖片和靜態(tài)HTML這樣的靜態(tài)內(nèi)容是由Web服務(wù)器提供服務(wù)。使用一些像過(guò)濾器這樣的技術(shù),Web服務(wù)器鑒別動(dòng)態(tài)內(nèi)容請(qǐng)求并顯示的導(dǎo)向應(yīng)用服務(wù)器。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40021.html
摘要:除此之外,還為不同的應(yīng)用程序體系結(jié)構(gòu)提供了基礎(chǔ)支持,包括消息傳遞事務(wù)數(shù)據(jù)和持久性以及,它還包括基于的框架,以及與之并行的反應(yīng)性框架。還支持依賴(lài)項(xiàng)注入和公共注解規(guī)范,應(yīng)用程序開(kāi)發(fā)人員可以選擇使用這些規(guī)范,而不是提供的特定于的機(jī)制。 概述 Spring使創(chuàng)建Java企業(yè)應(yīng)用程序變得很容易,它提供了在企業(yè)環(huán)境中使用Java語(yǔ)言所需要的一切,支持Groovy和Kotlin作為JVM上的替代語(yǔ)言...
摘要:第章概述簡(jiǎn)介是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),是應(yīng)用開(kāi)發(fā)的主要技術(shù)之一,也是目前應(yīng)用開(kāi)發(fā)的主流技術(shù)之一。為此,需要逐一完成開(kāi)發(fā)包服務(wù)器開(kāi)發(fā)工具以及數(shù)據(jù)庫(kù)管理系統(tǒng)的安裝與配置。在此,開(kāi)發(fā)包使用,服務(wù)器使用開(kāi)發(fā)工具使用,數(shù)據(jù)庫(kù)管理系統(tǒng)使用。 ...
摘要:微服務(wù)架構(gòu)概述應(yīng)用架構(gòu)的發(fā)展應(yīng)用是可獨(dú)立運(yùn)行的程序代碼,提供相對(duì)完善的業(yè)務(wù)功能。阿里開(kāi)源的是的典型實(shí)現(xiàn)。它目前由官方開(kāi)發(fā)維護(hù),基于開(kāi)發(fā),提供一套完整的微服務(wù)解決方案。 微服務(wù)與Spring Cloud 隨著互聯(lián)網(wǎng)的快速發(fā)展, 云計(jì)算近十年也得到蓬勃發(fā)展, 企業(yè)的IT環(huán)境和IT架構(gòu)也逐漸在發(fā)生變革,從過(guò)去的單體應(yīng)用架構(gòu)發(fā)展為至今廣泛流行的微服務(wù)架構(gòu)。 微服務(wù)是一種架構(gòu)風(fēng)格, 能給軟件應(yīng)用...
摘要:該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案什么是持續(xù)集成持續(xù)集成作為當(dāng)今軟件開(kāi)發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開(kāi)發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回造成每天會(huì)有多次的版本發(fā)布。 該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案 什么是持續(xù)集成? 持續(xù)集成作為當(dāng)今軟件開(kāi)發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開(kāi)發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回...
摘要:成員方法類(lèi)概述用于產(chǎn)生隨機(jī)數(shù)成員方法正則表達(dá)式相關(guān)方法判斷功能分割功能替換功能獲取功能和類(lèi)的使用類(lèi)概述包含一些有用的類(lèi)字段和方法。注意它不能被實(shí)例化,因?yàn)榇祟?lèi)構(gòu)造器是私有的成員方法類(lèi)類(lèi)概述表示特定的瞬間,精確到毫秒。 前言 我們都知道,JDK包含了JRE,而JRE中也提供了各種功能的java類(lèi),現(xiàn)在我們就對(duì)這些類(lèi)有個(gè)簡(jiǎn)單了解,然后靈活運(yùn)用。 常用類(lèi):Object類(lèi)/Scanner類(lèi),...
摘要:第七章包的基本概述起因在我們?cè)O(shè)計(jì)一個(gè)程序的時(shí)候尤其是多人合作,會(huì)寫(xiě)一些類(lèi)來(lái)實(shí)現(xiàn)功能,但是往往會(huì)有重名的現(xiàn)象發(fā)生,為了解決這個(gè)問(wèn)題,則專(zhuān)門(mén)設(shè)計(jì)了包。概念為了更好地組織類(lèi),提供了包機(jī)制,用于區(qū)別類(lèi)名的命名空間。 第七章 7.1 包的基本概述 起因: 在我們?cè)O(shè)計(jì)一個(gè)程序的時(shí)候(尤其是多人合作),會(huì)寫(xiě)一些類(lèi)來(lái)實(shí)現(xiàn)功能,但是往往會(huì)有重名的現(xiàn)象發(fā)生,為了解決這個(gè)問(wèn)題,則專(zhuān)門(mén)設(shè)計(jì)了包。(還有其他作用...
閱讀 1565·2021-11-02 14:42
閱讀 2308·2021-10-11 10:58
閱讀 656·2021-09-26 09:46
閱讀 2908·2021-09-08 09:35
閱讀 1403·2021-08-24 10:01
閱讀 1228·2019-08-30 15:54
閱讀 3597·2019-08-30 15:44
閱讀 1792·2019-08-30 10:49