當前位置:首頁 » 網頁前端 » web容器有哪些
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web容器有哪些

發布時間: 2022-01-18 02:43:23

❶ java裡面的web容器是指什麼

例如apache、nginx等都是此類。不過現實中很多web伺服器出於種種考慮回內置針對特定語言或架構的處理體系,例如iis內置了asp.net的處理架構,apache也可以通過擴展提供php、rails等處理架構(這些特別內置的模塊,你也可以簡單理解為web容器了)。如果web伺服器自己不處理特別請求,那麼可以通過cgi等方式轉發給後端處理,例如apache、nginx都可以通過fastcgi將請求轉發給後端埠,例如php-fpm服務,或python的什麼服務等等。 其實在java之前一直不太有web容器這種說法,到目前似乎也只有java是這么提的。這主要是因為整個java的web開發是基於javaEE的servlet技術體系,該體系規范規定了web請求的整個生命周期的方方面面。但是規范只是規定了實現的標准,或者說是介面(interface),具體實現都是各廠商自己搞定,所以這就出現了各種不同的web容器,例如tomcat、jetty、jboss等等。 又說回來,這些容器為了方便開發者,大多都提供了web伺服器的功能,不過和專業的web伺服器相比總有些缺失不足,所以一般只用來做開發用,生產環境主要還是作為後端服務。

❷ 什麼叫web容器以及作用

tomcat 是SERVLET的容器。

web 容器就是實現了JAVA的那些介面:javax.servlet。
而且JSP也是SERVLET的

web 容器啟動後一直運行,監聽所有提交到他所監控的那個埠的請求,並對此做出反映。

個人理解, 之前有看過人家別人寫的web容器的例子, 不過忘記了,如果你寫深入理解, 自己搜索把。

❸ 什麼是web容器

web容器是一種服務程序,在伺服器一個埠就有一個提供相應服務的程序,而這個程序就是處理從客戶端發出的請求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是這樣的容器。一個伺服器可以多個容器。

❹ java問題:什麼是web容器列舉幾個常見的web容器

Web Container也是一個組件,是J2EE本身提供的。它封裝了一般Web組件與Web Server打交道的一些底層的細節。就是說,你自己開發的組件並不是直接調用WebServer的功能,而是通過Web Container間接與WebServer對話,這樣你就不許要知道許多關於WebServer的底層技術。

❺ web容器是什麼

web容器是一種服務程序,在伺服器一個埠就有一個提供相應服務的程序,而這個程序就是處理從客戶端發出的請求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是這樣的容器。一個伺服器可以多個容器。
參考:http://ke..com/view/3745545.htm

❻ 誰給說下web容器的具體概念,除了web容器外還有其他的容器嗎

1. 架構概述

J2EE體系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技術。這些技術的出現給電子商務時代的WEB應用程序的開發提供了一個非常有競爭力的選擇。怎樣把這些技術組合起來形成一個適應項目需要的穩定架構是項目開發過程中一個非常重要的步驟。完成這個步驟可以形成一個主要里程碑基線。形成這個基線有很多好處:

各種因數初步確定

為了形成架構基線,架構設計師要對平台(體系)中的技術進行篩選,各種利弊的權衡。往往架構設計師在這個過程中要閱讀大量的技術資料,聽取項目組成員的建議,考慮領域專家的需求,考慮贊助商成本(包括開發成本和運行維護成本)限額。一旦架構設計經過評審,這些因數初步地就有了在整個項目過程中的對項目起多大作用的定位。

定向技術培訓

一旦架構師設計的架構得到了批准形成了基線,項目開發和運行所採用的技術基本確定下來了。眾多的項目經理都會對預備項目組成員的技術功底感到擔心;他們需要培訓部門提供培訓,但就架構師面對的技術海洋,項目經理根本就提不出明確的技術培訓需求。怎不能夠對體系中所有技術都進行培訓吧!有了架構里程碑基線,項目經理能確定這個項目開發會採用什麼技術,這是提出培訓需求應該是最精確的。不過在實際項目開發中,技術培訓可以在基線確定之前與架構設計並發進行。

角色分工

有了一個好的架構藍圖,我們就能准確劃分工作。如網頁設計,JSP 標簽處理類設計,SERVLET 設計,session bean設計,還有各種實現。這些任務在架構藍圖上都可以清晰地標出位置,使得項目組成員能很好地定位自己的任務。一個好的架構藍圖同時也能規范化任務,能很好地把任務劃分為幾類,在同一類中的任務的工作量和性質相同或相似。這樣工作量估計起來有一個非常好的基礎。

運行維護

前面說過各個任務在架構圖上都有比較好的定位。任何人能藉助它很快地熟悉整個項目的運行情況,錯誤出現時能比較快速地定位錯誤點。另外,有了清晰的架構圖,項目版本管理也有很好的版本樹軀干。

擴展性

架構猶如一顆參天大樹的軀干,只要軀干根系牢,樹干粗,長一些旁支,加一些樹葉輕而易舉無疑。同樣,有一個穩定的經得起考驗的架構,增加一兩個業務組件是非常快速和容易的。

大家都知道這些好處,一心想形成一個這樣的J2EE應用程序架構(就像在windows平台中的MFC)。在這個路程中經歷了兩個大的階段:

1.1. 模型1

模型1其實不是一個什麼穩定架構,甚至談不上形成了架構。模型1的基礎是JSP文件。它從HTTP的請求中提取參數,調用相應的業務邏輯,處理HTTP會話,最後生成HTTP文檔。一系列這樣的JSP文件形成一個完整的模型1應用,當然可能會有其他輔助類或文件。早期的ASP 和 PHP 技術就屬於這個情況。

總的看來,這個模型的好處是簡單,但是它把業務邏輯和表現混在一塊,對大應用來說,這個缺點是令人容忍不了的。

1.2. 模型2

在經過一番實踐,並廣泛借鑒和總結經驗教訓之後,J2EE應用程序終於迎來了MVC(模型-視圖-控制)模式。MVC模式並不是J2EE行業人士標新立異的,所以前面我談到廣發借鑒。MVC的核心就是做到三層甚至多層的鬆散耦合。這對基於組件的,所覆蓋的技術不斷膨脹的J2EE體系來說真是福音和救星。

它在瀏覽器(本文對客戶代理都稱瀏覽器)和JSP或SERVLET之間插入一個控制組件。這個控制組件集中了處理瀏覽器發過來的HTTP請求的分發邏輯,也就是說,它會根據HTTP請求的URL,輸入參數,和目前應用的內部狀態,把請求分發給相應的WEB 層的JSP 或SERVLET。另外它也負責選擇下一個視圖(在J2EE中,JSP,SERVLET會生成回給瀏覽器的html從而形成視圖)。集中的控制組件也有利於安全驗證,日誌紀錄,有時也封裝請求數據給下面的WEB tier層。這一套邏輯的實現形成了一個像MFC的應用框架,位置如圖:

1.3. 多層應用

下圖為J2EE體系中典型的多層應用模型。

Client tier客戶層

一般為瀏覽器或其他應用。客戶層普遍地支持HTTP協議,也稱客戶代理。

WEB tier WEB應用層

在J2EE中,這一層由WEB 容器運行,它包括JSP, SERVLET等WEB部件。

EJB tier 企業組件層

企業組件層由EJB容器運行,支持EJB, JMS, JTA 等服務和技術。

EIS tier 企業信息系統層

企業信息系統包含企業內傳統信息系統如財務,CRM等,特點是有資料庫系統的支持。

應用框架目前主要集中在WEB層,旨在規范這一層軟體的開發。其實企業組件層也可以實現這個模型,但目前主要以設計模式的形式存在。而且有些框架可以擴充,有了企業組件層組件的參與,框架會顯得更緊湊,更自然,效率會更高。

2. 候選方案

目前,實現模型2的框架也在不斷的涌現,下面列出比較有名的框架。

2.1. Apache Struts

Struts是一個免費的開源的WEB層的應用框架,apache軟體基金致力於struts的開發。Struts具是高可配置的性,和有一個不斷增長的特性列表。一個前端控制組件,一系列動作類,動作映射,處理XML的實用工具類,伺服器端java bean 的自動填充,支持驗證的WEB 表單,國際化支持,生成HTML,實現表現邏輯和模版組成了struts的靈魂。

2.1.1. Struts和MVC

模型2的目的和MVC的目的是一樣的,所以模型2基本可以和MVC等同起來。下圖體現了Struts的運作機理:

2.1.1.1. 控制

如圖所示,它的主要部件是一個通用的控制組件。這個控制組件提供了處理所有發送到Struts 的HTTP請求的入口點。它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)。另外控制組件也負責用相應的請求參數填充 From bean,並傳給動作類。動作類實現核心商業邏輯,它可以通過訪問java bean 或調用EJB。最後動作類把控制權傳給後續的JSP 文件,後者生成視圖。所有這些控制邏輯利用一個叫struts-config.xml文件來配置。

2.1.1.2. 模型

模型以一個或幾個java bean的形式存在。這些bean分為三種:

Form beans(表單Beans)

它保存了HTTP post請求傳來的數據,在Struts里,所有的Form beans都是 ActionFrom 類的子類。

業務邏輯beans

專門用來處理業務邏輯。

系統狀態beans

它保存了跨越多個HTTP 請求的單個客戶的會話信息,還有系統狀態。

2.1.1.3. 視圖

控制組件續傳HTTP請求給實現了視圖的JSP文件。JSP能訪問beans 並生成結果文檔反饋到客戶。Struts提供JSP 標簽庫: Html,Bean,Logic,Template等來達到這個目的,並有利於分開表現邏輯和程序邏輯。

2.1.2. Struts的細節分析

2.1.2.1. 視圖-控制-模型

用戶發出一個*.do的HTTP請求,控制組件接收到這個請求後,查找針對這個請求的動作映射,再檢查是否曾創建過相應的動作對象(action實例),如果沒有則調用actionmapping生成一個動作對象,控制組件會保存這個動作對象供以後使用。接著調用actionmapping的方法得到actionForm對象。之後把actionForm作為參數傳給動作對象的perform方法,這個方法結束之後會返回給控制組件一個 actionforward對象。控制組件接著從這個對象中獲取下一個視圖的路徑和重定向屬性。如果為重定向則調用HTTPSERVLETREPONSE的方法來顯示下一個視圖,否則相繼調用requestdispatcher, SERVLETcontext的方法續傳HTTP請求到下一個視圖。

當動作對象運行perform方法時,可能出現錯誤信息。動作對象可以保存這些錯誤信息到一個error對象中,接著調用自身的saveerrors方法把這個錯誤保存到request對象的屬性中。接著動作對象調用actionmapping對象的getInput方法從動作映射中獲取input參數,也就是產生輸入的視圖,並以這個input為參數生成一個actionforward對象返回。這個input參數的JSP中一般有HTTP:errors定製標簽讀取這些錯誤信息並顯示在頁面上。

2.1.2.2. 模型到視圖

模型到視圖指視圖在顯示之前裝載系統數據到視圖的過程。系統數據一般為模型內java bean的信息。示意圖表現了由控制組件forward過來的有html:form定製標簽的JSP 的處理邏輯。

html:form定製標簽處理對象從application scope(通過查詢SERVLETCONTEXT對象的屬性來實現)獲取先前由控制組件actionSERVLET放在那裡的動作映射等對象,由html:form 的action屬性查得actionform名字、類型和范圍等信息,在相應的范圍內查找actionform,如果有則利用它的信息填充html form表單[實際填充動作在嵌套的html:text等定製標簽的處理對象中]。否則在相應范圍內創建一個actionform 對象。

2.1.3. 優缺點

優點:

一些開發商開始採用並推廣這個框架

作為開源項目,有很多先進的實現思想

對大型的應用支持的較好

有集中的網頁導航定義

缺點:

不是業屆標准

對開發工具的支持不夠

復雜的taglib,需要比較長的時間來掌握

html form 和 actionform的搭配比較封閉,但這也是它的精華所在。

修改建議

把actionform屬性的設置器和訪問器修改成讀取或生成xml文檔的方法,然後 html form和actionform之間用xml文檔進行數據交換,使之鬆散耦合,適應數據結構易變化的應用。

2.2. JATO

JATO應用程序框架是iPlanet 應用程序框架的舊名。它是一個成熟的、強大的,基於J2EE標準的面向於開發WEB應用程序的應用框架。結合了顯示欄位、應用程序事件、組件層次和以頁面為中心的開發方法、以及MVC和服務到工作者service-to-workers的設計模式等概念。JATO可適用於中、大、超大規模的WEB應用。但是它也不是一個企業層的應用框架,也就是說它不會直接提供創建EJB, WEB services等企業層組件的方法,但用它可以構造出訪問企業層組件的客戶應用。

這個框架功能主要有三部分組成:

iPlanet應用框架核心;

iPlanet應用框架組件;

iPlanet應用框架擴展。

應用框架核心定義了基本介面、對象協議、簡單組件,以及iPlanet應用框架程序的最小核心。包括視圖簡單組件、模型簡單組件、請求分發組件和可重用命令對象。iPlanet應用框架組件利用框架核心定義的基本介面、協議和組件向開發者提供高層的重用組件,這些組件既有與特定視覺效果無關的水平組件,同時也有適應特定實用環境、提高可用性而特意提供的垂直型組件。框架擴展實現了用框架相容的方法訪問非J2EE環境的方法。通常情況下,擴展被框架應用程序用來無縫訪問J2EE容器特定功能。JATO平台棧圖很清楚地表達了這個情況。

JATO最大的威力在:對於快速開發用戶,你能利用框架組件和擴展提高生產率,對於要求更大靈活性的用戶,你能實現框架核心提供的介面來保持應用的框架兼容性。

此圖表示實現一個JATO應用程序,可以簡單地實現控制組件mole1Servlet,視圖組件ListCustomersViewBean和模型組件CustomersMoleImpl,以及一個給客戶代理顯示界面的ListCustomers.jsp文件。並清楚地表明這些組件與JATO框架組件的繼承關系。

JATO標簽庫提供了VIEW對象與JSP文件的介面。庫中標簽處理程序負責實現VIEW對象和JSP產生地客戶端文檔的信息同步和交換。這個圖清楚地表達了這種對應關系

2.2.1. MVC分析

前端控制組件接收用戶發來的任何請求,這個可在WEB.xml中指定請求分發組件負責視圖管理和導航,和前端控制組件封裝在ApplicationSERVLETBase一起實現。應用程序開發者需要為每一個子系統(人力資源,財務,CRM等)實現一個此類的繼承。

請求分發組件分發請求給工作者,工作者實現了command介面。應用開發者可以實現這個介面。JATO提供了一個預設實現:DefaultRequestHandingCommand,這個實現會把請求傳給視圖組件的特定事件。

組合視圖是指視圖組件在顯示給用戶時的層次關系:根視圖是一個ViewBean類的對象欄位是一個DisplayField類的對象,容器視圖是一個ContainerView類的對象。視圖組件類的層次關系如下圖:

2.2.2. 優缺點分析

優點:

這種框架的適應范圍大,即提供了底層介面,也有立即可用的組件

具有與客戶端RAD開發工具相似的開發概念如頁為中心(等同於VB的FORM),事件處理等.

對大型的應用支持較好

缺點:

不是業屆標准

目前還沒有開發工具的支持(然JATO已經為工具支持做好了准備)

沒有定義網頁導航,開發者在視圖中自己指定具體的導航URL

修改建議

把眾多的VIEW/MODEL對應修改成xml文檔傳遞數據,加上集中的網頁導航定義

2.3. JSF(JavaServer Faces)

JSF是一個包括SUN在內的專家組正在定義的開發WEB應用用戶界面的框架,JSF 技術包括:

一組API,它實現UI了組件,管理組件的狀態,處理事件,輸入校驗,定義頁面導航,支持國際化和訪問;

一個JSP定製標簽庫實現與JSP的介面。

JSF非常簡單,是一個定義良好的編程模型。利用這個技術,開發者通過在頁面內組合可重用的UI組件,在把這些組件和應用的數據源相連,路由客戶產生的事件到伺服器端的事件處理器進行編程。JSP處理了所有幕後的復雜工作,使得開發者把關注重點放在應用代碼上。

2.3.1. STRUTS、JATO和JSF比較

它們之間有部分重疊,但重點不一樣。

STRUTS和JATO都提供了一個MVC式的應用模型,而JSF只在用戶界面上提供編程介面。這意味著前兩者涉及的范圍比後者廣。JSF可以成為前兩者在UI開發的部分。

JSF的規范的發布版將在 2002年底發布,實現可能要比這個時間晚些。另外將會有工具支持這個框架的應用開發。

2.4. WAF

WAF是WEB APPLICATION FRAMWORK的簡稱,是SUN藍皮書例子程序中提出的應用框架。它實現了 MVC和其他良好的設計模式。

2.4.1. 細節分析

2.4.2. 視圖-控制-模型

如圖所示,開發人員編寫的兩個xml配置文件定義了WAF的運作參數。Screendefinition.xml定義了一系列的屏幕(screen)。Mapping.xml則定義了某個動作之後應該顯示的屏幕,但沒有指定屏幕到哪裡拿數據。

用戶發出一個HTTP請求(*.screen),由TemplateSERVLET屏幕前端控制組件接收,它提取請求信息,設置request對象CurrentScreen屬性,再把請求發到模版JSP。模版JSP收到請求後,JSP中的Template標簽察看這個當前屏幕,並從屏幕定義文件(Screendefinition.xml)中獲取這個屏幕的具體參數,再生成html返回給客戶。

假設返回給客戶的html中包括了html表單,用戶在輸入一定數據之後提交,發出一個HTTP請求(*.do)。這個請求被MainSERVLET接收,它提取請求信息,察看動作映射文件(mapping.xml),設置處理這個請求的動作對象(HTTPAction對象),交給requestprosessor對象處理。Requestprosessor對象調用動作對象完成任務,如果需要進一步處理,requestprosessor對象會調用WEBclientcontroler對象的事件處理機制。MainSERVLET在處理完請求之後,從屏幕流管理對象那裡得到下一個屏幕,並把請求傳給這個屏幕的JSP文件。

值得一提的是WEBclientcontroler事件處理機制最終把HTTP請求的數據傳到了EJBAction對象那裡處理。這樣HTTPAction對象和EJBAction對象形成了兩級處理機制,前一級與request對象緊密相關,把數據封裝起來形成一個Event對象,再傳給了EJBAction對象,後者與Request對象無關。這個方式可以形成一個session級別的數據處理機制。下圖顯示了這個方法。HTTPAction1對象處理一個請求,並把數據放到一個狀態SessionBean內,HTTPAction2也如此,當HTTPAction3接收到HTTP請求之後,把控制傳給EJBAction, 後者獲取狀態SessionBean數據,處理請求,成功後清控狀態SessionBean的內容。這個機制非常適應多個輸入頁面才能滿足一個業務的輸入數據的情況(比如購物車)。

2.4.3. 優缺點分析

優點

屏幕導航定義明確

為框架的擴展提供了一個空間

缺點

源碼比較亂,穩定性和可靠性沒人驗證。

只是一個框架軀干,沒有正式的model層,視圖的概念不強

沒有模型到視圖的定義

修改意見

只有一個框架軀干,正為實現自己的應用框架提供了靈活性。沒有僵化的視圖概念,提供了在網頁輸入到模型的擴充介面,比如插入XML數據交換。

❼ 簡述一下Java中的web容器,舉幾個例子也行

目前市場上常用的開源Java Web容器有Tomcat、Resin和Jetty。其中Resin從V3.0後需要購買才能用於商業目的,而其他兩種則是純開源的。可以分別從他們的網站上下載最新的二進制包和源代碼。
作為Web容器,需要承受較高的訪問量,能夠同時響應不同用戶的請求,能夠在惡劣環境下保持較高的穩定性和健壯性。在HTTP伺服器領域,Apache HTTPD的效率是最高的,也是最為穩定的,但它只能處理靜態頁面的請求,如果需要支持動態頁面請求,則必須安裝相應的插件,比如mod_perl可以處理Perl腳本,mod_python可以處理Python腳本。

上面介紹的三中Web容器,都是使用Java編寫的HTTP伺服器,當然他們都可以嵌到Apache中使用,也可以獨立使用。分析它們處理客戶請求的方法有助於了解Java多線程和線程池的實現方法,為設計強大的多線程伺服器打好基礎。

Tomcat是使用最廣的Java Web容器,功能強大,可擴展性強。最新版本的Tomcat(5.5.17)為了提高響應速度和效率,使用了Apache Portable Runtime(APR)作為最底層,使用了APR中包含Socket、緩沖池等多種技術,性能也提高了。APR也是Apache HTTPD的最底層。可想而知,同屬於ASF(Apache Software Foundation)中的成員,互補互用的情況還是很多的,雖然使用了不同的開發語言。

Tomcat 的線程池位於tomcat-util.jar文件中,包含了兩種線程池方案。方案一:使用APR的Pool技術,使用了JNI;方案二:使用Java實現的ThreadPool。這里介紹的是第二種。如果想了解APR的Pool技術,可以查看APR的源代碼。

ThreadPool默認創建了5個線程,保存在一個200維的線程數組中,創建時就啟動了這些線程,當然在沒有請求時,它們都處理「等待」狀態(其實就是一個while循環,不停的等待notify)。如果有請求時,空閑線程會被喚醒執行用戶的請求。

具體的請求過程是: 服務啟動時,創建一個一維線程數組(maxThread=200個),並創建空閑線程(minSpareThreads=5個)隨時等待用戶請求。 當有用戶請求時,調用 threadpool.runIt(ThreadPoolRunnable)方法,將一個需要執行的實例傳給ThreadPool中。其中用戶需要執行的實例必須實現ThreadPoolRunnable介面。 ThreadPool首先查找空閑的線程,如果有則用它運行要執行ThreadPoolRunnable;如果沒有空閑線程並且沒有超過maxThreads,就一次性創建minSpareThreads個空閑線程;如果已經超過了maxThreads了,就等待空閑線程了。總之,要找到空閑的線程,以便用它執行實例。找到後,將該線程從線程數組中移走。 接著喚醒已經找到的空閑線程,用它運行執行實例(ThreadPoolRunnable)。 運行完ThreadPoolRunnable後,就將該線程重新放到線程數組中,作為空閑線程供後續使用。

由此可以看出,Tomcat的線程池實現是比較簡單的,ThreadPool.java也只有840行代碼。用一個一維數組保存空閑的線程,每次以一個較小步伐(5個)創建空閑線程並放到線程池中。使用時從數組中移走空閑的線程,用完後,再「歸還」給線程池。

❽ Web組件與Web容器有哪些,WEB組件的三種關聯

Web組件:有Jsp,Servlet等
Web容器:有tomcat ,jboss, resin, weblogic ,websphere, glassfish。可以理解為Web伺服器。

WEB應用程序如此強大的原因之一就是他們能彼此鏈接和聚合信息資源。WEB組件之間存在三種關聯關系:
l 請求轉發
l URL重定向
l 包含關系
存在以上關聯關系的Web組件可以是JSP或Servlet,對於Struts應用,則還包含Action,這些Web組件都可以訪問HttpServletRequest和HttpServletResponse對象,具有處理請求、生成響應結果的功能。
1. 請求轉發。
請求轉發允許把請求轉發給同一個應用程序中的其他Web組件。這種技術通常應用於Web應用中的Servlet流程式控制制器。
Servlet類使用 javax.servlet.RequestDispatcher.forward()方法來轉發。轉發目標將處理該請求並生成響應結果,或者將請求轉發到另一個組件,最初請求的ServletRequest,ServletResponse對象被傳遞給轉發目標組件,這使得目標組件可以訪問整個請求上下文。值得注意的是,只能把請求轉發給同一個web應用中的組件。下面是一個例子,當前的servlet組件要把請求轉發給一個JSP組件,如hello.jsp,可以在Servlet的service()方法中執行以下代碼:
RequestDispatcher rd = request.getRequestDispatcher(「hello.jsp」);
Rd.forward(request,response);
在jsp頁面中,可以使用<jsp:forward>標簽來轉發請求,例如:
<jsp:forward page=」hello.jsp」/>
對於請求轉發,轉發的源組件和目標組件共享request范圍內的共享數據。
2. 請求重定向
請求重定向類似於請求轉發,但也有一些重要的區別:
l Web組件可以將請求重定向到任一URL,而不僅僅是同一應用中的URL。
l 重定向的目標組件與源組件之間不共用同一個HttpServletRequest對象,因此不能共享request范圍內的共享數據。
例如當前應用的Servlet組件把請求轉發到URL:http://jakarta.apache.org/struts,可以在Servlet的service()方法中執行以下代碼:
Response.sendRedirect(「http://jakarta.apache.org/struts」);
HttpServletResponse的sendRedirect()方法向瀏覽器返回包含重定向的信息,瀏覽器根據這一信息迅速發出一個新的HTTP請求,請求訪問重定向目標組件。
3. 包含
Servlet類使用javax.servlet.RequestDispatcher.include()方法包含其他的Web組件。例如當前的Servlet組件包含三個JSP文件:header.jsp/main.jsp/footer.jsp,則可以在servlet的service()方法中執行以下代碼:
RequestDispatcher rd;
Rd = req.getRequestDispatcher(「/header.jsp」);
Rd.include(req,res);
Rd = req.getRequestDispatcher(「/main.jsp」);
Rd.include(req,res);
Rd = req.getRequestDispatcher(「/footer.jsp」);
Rd.include(req,res);
在JSP文件中,可以通過〈include〉指令來包含其他的web資源,例如:
<%@ include file=」header.jsp」%>
<%@ include file=「main.jsp」%>
<%@ include file=」footer.jsp」%>

❾ Java中Web容器

web容器可以理解為打開瀏覽器後並有一個提交請求所形成的環境.

❿ 常用的java web 容器有哪幾種

小項目,或者是個人開發tomcat
大項目或者商業項目一般採用:weblgoic/webshere

其他的還有jboss、glasshfish等

一些示例項目或者小項目常採用jetty