當前位置:首頁 » 操作系統 » tomcat源碼servlet

tomcat源碼servlet

發布時間: 2022-10-18 09:42:27

A. 跪求大神,怎麼查看j2ee一些的類的源代碼,用myeclipse看。伺服器是tomcat。例如httpservlet這些類。

找 .class 文件,jad反編譯

B. Tomcat下配置Servlet

1、首先需要安裝JDk,並完成環境變數的配置。工具為Editplus+JDK,步驟大致如下: 安裝JDK,把它裝到從d:\JDK目錄下面: 然後就是CLASSPATH的問題了: 正如操作系統利用PATH來搜索可執行程序一樣,java運行環境也會遍歷CLASSPATH來查找類,即便是HelloWorld這樣簡單的程序,JVM也會遍 歷 CLASSPATH定義的每一個路徑,直到找到相應的文件為止。 相信大家用的系統不是2k就是XP,然後就應當如下設置Path: 我的電腦->屬性->高級->環境變數 然後在環境變數的Path後面追加:d:\JDK\bin;.;d:\JDK\lib 也可以這樣配置:d:\JDK\bin;.;d:\JDK\lib\dt.jar;d:\JDK\lib\tools.jar 2、在Editplus裡面編譯和運行,在Tools->參數設置->配置用戶工具 1>添加工具(添加應用程序) 菜單文字:CompileJavaProgram 程序:d:\JDK\bin\javac.exe 參數:文件名稱 初始目錄:文件目錄 2>添加工具(添加應用程序) 菜單文字:RunJavaProgram 程序:d:\JDK\bin\java.exe 參數:文件名稱(不含擴展名) 初始目錄:文件目錄 工具組名稱可以隨便添,比如DebugJavaProgram 然後在Tools的下拉菜單中,你就會看見CompileJavaProgram以及RunJavaProgram這兩個選項,以後你就可以利用ctrl+1編譯和ctrl+2運 行程序了 3、安裝Tomcat,具體的安裝步驟如下: 安裝C:\Tomcat 然後再配置環境變數: 添加三個系統變數: JAVA_HOME:C:\JDK TOMCAT_HOME:C:\Tomcat CLASSPATH:%JAVA_HOME%\lib;%TOMCAT_HOME%\lib Tomcat的環境變數就配置完畢了,下面檢驗Tomcat是否能夠運行:在瀏覽器中輸入http://localhost:8080,出現可愛的小貓歡迎界面,則 表示Tomcat沒問題了。 4、使用editplus編寫自己的第一個servlet程序,使用剛才創建的菜單工具來編譯這個java文件。需要強調的是:在使用editplus編譯servlet程序之前,必須要將d:\Tomcat\common\lib裡面的servlet.jar文件拷貝到d:\JDK\jre\lib\ext中,否則會出錯。 將編譯產生的class文件拷貝到d:\Tomcat\webapps\ROOT\WEB-INF\classes目錄下(如果你自己創建了虛擬目錄,那麼這個class文件也可以拷貝到你的虛擬目錄下的WEB-INF\classes目錄下),然後修改相應的WEB-INF目錄下的web.xml文件,在裡面添加: <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/helloworld</url-pattern> </servlet-mapping> <servlet></servlet>之間的內容表示指定包含的servlet類,<servlet-mapping> </servlet-mapping> 之間的內容表示指定HelloServlet應當映射到哪一種URL模式。 5、修改web.xml完畢過後,重新啟動Tomcat服務,然後再輸入http://localhost:8080/servlet/HelloWorld,你將會看到你所想要的東西。

記得採納啊

C. Tomcat源碼解析-容器組件之StandardHost

Container容器用來表示tomcat中servlet容器,負責servelt的載入和管理,處理請求ServletRequest,並返回標準的 ServletResponse 對象給連接器。

Container容器組件

tomcat 將Container容器按功能分為4個組件,分別是 Engine、Host、Context 和 Wrapper。這 4 種容器不是平行關系,而是父子關系。

Lifecycle介面定義tomcat中所有組件的生命周期相關介面方法。Tomcat 定義一個基類LifecycleBase 來實現 Lifecycle 介面,把一些公共的邏輯放到基類中實現。而子類就負責實現自己的初始化、啟動和停止等模板方法。

詳見 Tomcat架構設計-組件生命周期 Lifecycle

Container介面定義tomcat中所有容器組件的通用介面方法。Tomcat 定義一個基類ContainerBase 來實現Container 介面,把一些公共的邏輯放到基類中實現。

詳見 Tomcat架構設計-容器組件基類 ContainerBase

在tomcat中最核心功能就是將一個靜態資源目錄或一個應用程序部署到容器中。而這個容器就是指得Host容器組件。而靜態資源或一個應用程序通過Context容器組件來表示。所謂部署就是載入到Host容器的子組件中。當然虛擬主機除了部署外還又其他功能,包括熱部署,懶載入,別名等。

如果想要將一個靜態資源目錄部署到Tomcat伺服器上,tomcat提供了多種部署方式

在server.xml中配置

path表示Context根路徑,docBase表示映射靜態資源目錄

在xmlBase路徑下配置xml文件

在$CATALINA_BASE/xmlBase 路徑下創建 JavaWebApp.xml,xmlBase配置在Host標簽屬性中

文件名稱表示Context根路徑,docBase表示映射靜態資源目錄

將資源文件拷貝到appBase路徑下

appBase路徑在Host標簽屬性中定義,文件名稱表示Context根路徑。

部署應用程序到appBase目錄

appBase是在server.xml文件Host標簽appBase屬性來定義,appBase可以填寫相對路徑或者絕對路徑,如果是相對路徑那麼完整路徑為 CATALINA_BASE表示tomcat的工作目錄

虛擬主機Host可以在設置在使用時在部署靜態資源或應用程序。

虛擬主機Host會定期檢查appBase和xmlBase目錄下新Web應用程序或靜態資源,如果發生更新則會觸發對應context組件的重新載入

虛擬主機Host可以定義別名。

StandardHost並管理子容器Context組件,以及從父類ContainerBase,LifecycleBase 繼承的通用組件。

StandardHost實現了Host介面,在了解StandardHost功能之前我們需要了解
Host介面.

Host介面

StandardHost實現Host介面,Host介面用來對Tomcat中虛擬主機功能配置提供了訪問方法。

StandardHost只對虛擬機功能配置做了定義 ,其具體實現由HostConfig來實現。同時負責管理子容器Context組件(下圖藍色),以及從父類ContainerBase(下圖紅色),LifecycleBase(下圖黃色) 繼承的通用組件。

tomcat中所有組件都需要經歷如下流程。

Tomcat使用Digester解析server.xml,Digester是一款用於將xml轉換為Java對象的事件驅動型工具,是對SAX的高層次的封裝。相對於SAX,Digester可以針對每一個xml標簽設置對應的解析規則。詳見 Tomcat相關技術-Digester(二)

Tomcat在Catalina組件初始化階段調用createStartDigester()創建Digester對象,Digester對象內包含解析server.xml規則,接著通過Digester對象解析server.xml實例化StandardHost,並對部分屬性設置值.

server.xml配置

解析<Host>標簽及子標簽tomcat使用規則組HostRuleSet,其中定義了解析規則。

CopyParentClassLoaderRule規則

CopyParentClassLoaderRule規則,負責調用次棧頂對象getParentClassLoader獲取父類載入,設置到棧頂對象parentClassLoader屬性上

LifecycleListenerRule規則

LifecycleListenerRule 規則負責給棧頂對象添加一個生命周期監聽器.

接下來初始化開始則進入tomcat組件的生命周期,對於tomcat中所有組件都必須實現Lifecycle,Tomcat 定義一個基類LifecycleBase 來實現 Lifecycle 介面,把一些公共的邏輯放到基類中實現,比如生命狀態的轉變與維護、生命事件的觸發以及監聽器的添加和刪除等,而子類就負責實現自己的初始化、啟動和停止等模板方法。為了避免跟基類中的方法同名,我們把具體子類的實現方法改個名字,在後面加上 Internal,叫 initInternal、startInternal 等。

StandardHost父類對容器的初始化、啟動和停止等模板方法進行的了默認實現。子類容器只需要重寫父類實現即可實現擴展。

StandardEngine其他生命周期實現均從父類ContainerBase繼承。

為添加的子容器設置生命周期監聽器MemoryLeakTrackingListener

每一個容器組件都有一個 Pipeline 對象,Pipeline 中維護了 Valve 鏈表,默認時每一個Pipeline存放了一個默認的BasicValue,
這里每一個Value表示一個處理點,當調用addValve 方法時會將添加Vaule添加到鏈表頭部,Pipeline 中沒有 invoke
方法,請求處理時Pipeline只需要獲取鏈表中第一個Valve調用incoke去執行,執行完畢後當前Value會調用
getNext.invoke() 來觸發下一個 Valve 調用

每一個容器在執行到最後一個默認BasicValue時,會負責調用下層容器的 Pipeline 里的第一個 Valve

對於StandardHost容器來說默認情況存在三個Value(閥門),分別是 AccessLogValve (構建時讀取server.xml時), StandardHostValve (構建實例化時), ErrorReportValve (啟動時)。

記錄訪問日誌,這里是一個通用組件,後續會由專題講解

D. tomcat 怎麼配置Servlet

servlet放在 工程名/WEB-INF/classes

然後修改WEB-INF下的web.xml文件:
在 <web-app> 與 </web-app> 中添加如下東東:
<servlet>
<servlet-name> Servlet的名字 </servlet-name>
<servlet-class> ServletClass的位置(用package方法表示) </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> Servlet的名字 </servlet-name>
<url-pattern> 所響應的請求路徑 </url-pattern>
</servlet-mapping>

E. servlet jsp tomcat java源代碼 structs疑惑 還有容器,框架的通俗解釋

1、servlet是java程序,但是比較特殊,和普通的java程序不同,無法單獨執行,通過配置,可以在tomcat中運行,可以對用戶提交的數據進行處理和反饋。他的運行也就是tomcat調用它。

2、jsp,jsp是後來人們發現,總是寫servlet比較麻煩,因為servlet每次運行前都要編譯和配置,所以人們就開發出了jsp,jsp直接在HTML代碼內部寫代碼,這樣比較直觀,而且不用編譯,寫好以後放到tomcat裡面,tomcat會把它先轉化為servlet,再編譯配置,不過這些都是自動的,所以很方便。

3、struts ,人們用servlet和jsp寫程序,寫多了發現,這些網頁程序的處理流程都差不多:接到請求,根據請求從資料庫或者別的地方獲得數據,然後處理返回給用戶。於是就有人想,如果我們返回給用戶的頁面和獲得數據處理數據的部分分開,這樣豈不更好:如果以後我要修改頁面,直接該頁面就行了,不用關心代碼。多好?!所以就有了struts。

4、tomcat,以上那些東西怎麼運行呢?在tomcat裡面,其實tomcat的核心是servlet,jsp最後也是轉化為servlet,struts更是servlet + 標記庫 + javabean。所以,一般稱tomcat為servlet容器。

F. tomcat下配置servlet的問題,請真正的高手幫忙!

我認為可能是web.xml的問題,你在配置servlet部署描述符的時候一定要注意<servlet>
<servlet-name>***</servlet-name>
<servlet-class>包.類名稱</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>***</servlet-name>
<url-pattern>/路徑名稱/**</url-pattern>
</servlet-mapping>
兩個方面可能出現問題都會導致出現404錯誤。
1,servlet 單詞或者其他的任何一個單詞打錯了,伺服器就不能正常啟動
2,<url-pattern>/路徑名稱/**</url-pattern>這個路徑名稱是你要顯示的那個jsp頁面的上一級路徑名稱,這個事拼湊起來的,也是最容易出錯的地方,希望你從這兩方面仔細找找問題,另外你說的server.xml,這裡面可以設置虛擬路徑,可以設置tomcat自動reloading,具體的配置我建議你下載相關視頻進行學習。

G. tomcat 7二進制和源碼的區別

Tomcat作為JavaWeb領域的Web容器,目前在我們淘寶也使用的也非常廣泛,現在基本上所有線上業務系統都是部署在Tomcat上。為了對平時開發的Web系統有更深入的理解以及出於好奇心對我們寫的Web系統是如何跑在Tomcat上的,於是仔細研究了下Tomcat的源碼。大家都知道Servlet規范是Java領域中為服務端編程制定的規范,對於我們開發者只是關注了Servlet規范中提供的編程組件(ServletContextListener,Filer,Servlet) 等 ,但是規范中還有一些我們經常

H. 怎樣在tomcat中部署編譯好的servlet

1.在myeclipse裡面,window菜單最後一個preferences,左邊點開myclispe,點servers下面找到tomcat,選擇tomcat版本,Tomcat Server 設置為enable,再選擇tomcat的路徑,OK。
2.在myclipse新建一個WEB項目,然後在下面可以寫jsp程序了,默認會有個index.jsp
3.點工具欄上的發布按鈕,點右邊的ADD,選擇剛才第一步建的tomcat,就會把項目發布到tomcat下面
4.啟動tomcat,在發布按鈕旁邊,是啟動按鈕,選擇創建的tomcat
5.在瀏覽器裡面輸入地址localhost:8080/myeclipse項目名稱/index.jsp

I. Servlet的源代碼在Tomcat中哪個文件夾

tomcat中是沒有源代碼的,那裡都是編譯好的CLASS文件和頁面文件及配置文件。

J. tomcat啟動載入servlet

那你也要把錯誤貼出來啊!!!
感覺你這個servlet怪怪的
我是的確沒有見過這樣的servlet的。
這是一個基本的servlet
package test;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test1 extends HttpServlet {
public Test1() {
super();
}
public void destroy() {
super.destroy();
//銷毀時調用
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//get方式提交調用
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//post方式提交時調用
}

public void init() throws ServletException {
//初始化時調用
}

}

熱點內容
汽修汽配源碼 發布:2025-05-14 20:08:53 瀏覽:742
蜜蜂編程官網 發布:2025-05-14 19:59:28 瀏覽:57
優酷怎麼給視頻加密 發布:2025-05-14 19:31:34 瀏覽:635
夢三國2副本腳本 發布:2025-05-14 19:29:58 瀏覽:860
phpxmlhttp 發布:2025-05-14 19:29:58 瀏覽:434
Pua腳本 發布:2025-05-14 19:24:56 瀏覽:449
蘋果像素低為什麼比安卓好 發布:2025-05-14 19:13:23 瀏覽:461
安卓機微信怎麼設置紅包提醒 發布:2025-05-14 19:00:15 瀏覽:272
androidsystem許可權設置 發布:2025-05-14 18:56:02 瀏覽:971
mq腳本 發布:2025-05-14 18:45:37 瀏覽:25