“我來了。根據要求,我現在將告訴您如何編寫您的第一個 Web 服務器。”
“網絡服務器就像一個操作系統。它本身並沒有價值。它之所以有價值,是因為你可以在它上面運行特殊的網絡程序(servlets)。 ”
“正是這些 servlet 處理來自用戶的請求。”
“他們如何處理請求?我如何在網絡服務器中運行我的程序?”
“要編寫自己的 servlet,您的類必須繼承 HttpServlet 類。然後實現其 doGet() 和 doPost() 方法。當請求來自用戶時,Web 服務器創建您的 servlet 對象之一併調用其 doGet()方法。或者它調用 doPost() 方法,具體取決於來自瀏覽器的請求類型。”
“但是我的程序是如何進入網絡服務器的呢?”
“很簡單,你寫好程序,編譯好,放到你安裝Tomcat目錄下的一個特殊文件夾裡。”
“Servlet 是一個龐大而有趣但獨立的主題。所以,我今天不會向您解釋它。我會告訴您一些其他的事情。”
“JSP 是一種非常有趣的 servlet 類型。它們有點像 PHP。”
“讓我們使用 JSP 編寫並運行最簡單的 Web 程序。”
“開始吧!我準備好了。”
“那我們開始吧。”
第 1 步:創建一個新的 Web 項目
“完畢。”
第 2 步:將模塊類型設置為 Java 模塊。將應用程序類型設置為Web 應用程序並指定JDK。
“完畢。”
第 3 步:為其命名項目
“完畢。”
“你應該看到一個新的空項目。”
“幾乎是空的。它會包含一個名為 index.jsp 的文件。找到它。”
第 4 步:找到 JSP 文件
“找到了。”
“太好了。這是我們可以編寫 servlet 代碼的地方。”
“但讓我們先稍微配置一下 IntelliJ IDEA。”
“您可以直接從 IntelliJ IDEA 在 Tomcat 中運行 servlet。如果需要,還可以調試它們。基本上,它超級方便而且很棒。到時候您會很感激的。”
“我相信你。那麼接下來呢?”
“我們將‘教’IntelliJ IDEA 如何在 Tomcat 中運行我們的 Web 模塊(我們的應用程序)。”
第 5 步:在菜單中選擇“編輯配置”
“完畢。”
第 6 步:通過單擊加號創建新配置
“完畢。”
第 7 步:指示要運行的內容(Tomcat 服務器、本地)
“在名稱字段中為配置指定一個名稱,該名稱已標記為紅色。”
“Tomcat 將在其上啟動 servlet 的端口以綠色指示。”
“我們還需要告訴 IntelliJ IDEA Tomcat 所在的位置。單擊 Configure 按鈕……”
步驟 8:創建運行配置
“現在需要選擇Tomcat所在的文件夾:”
第 9 步:指定 Tomcat 的位置
“完畢。”
“你應該得到這樣的東西:”
第 10 步:結果配置
“現在我們需要將我們的項目連接到 Tomcat。”
有太多事情要做。我有這麼詳細的說明真是太好了。”
“你打賭!我為我的朋友試試。”
“現在按下 Fix 按鈕,IDEA 將自行完成所有操作。”
第十一步:IDEA連接項目和Tomcat
“完畢。”
“太好了,再提一句,估計8080端口已經被佔用了,畢竟Tomcat剛安裝就開始運行了。”
“IntelliJ IDEA 可以將 servlet 添加到正在運行的項目中,但為了簡單起見,目前它每次都會啟動一個新的 Tomcat 服務器。”
“那麼,我們要運行幾個 Tomcats 嗎?”
“是的。而且每個都需要自己的端口。所以,讓我們在項目設置中將端口 8080 更改為端口 8888。”
“四個八。我喜歡。”
第 12 步:將端口更改為 8888
“完畢。”
“太好了。我們完成了設置。”
“下一個是什麼?”
“現在讓我們稍微更改一下 index.jsp 文件”
“在那裡寫點東西,例如,«Power to crustaceans!»”
第 13 步:更改 index.jsp
“不,我寧願寫《機器人的力量!》”
“太好了。現在只剩下一點點要做了。”
第 14 步:運行 servlet 和 Tomcat
“Tomcat 日誌和堆棧跟踪應該是可見的。日誌應該沒有錯誤。”
“像這樣的東西:”
第 15 步 - Tomcat 日誌
“與此同時,IDEA 應該打開一個瀏覽器,其中包含您的 servlet 的 URL。”
“你應該得到這樣的東西:”
第 16 步:更改 index.jsp
“是的。這就是我得到的。酷!”
“現在在瀏覽器中輸入以下 URL:”
http://localhost:8888/index.jsp |
“沒有改變。”
“別這麼說。”
第 17 步:更改 index.jsp
“現在瀏覽器顯示您在 IntelliJ IDEA 中看到的 index.jsp 文件。”
“我換的那個?”
“是的。”
“但是如果在瀏覽器的請求中只指定了域,而不是請求的其餘部分,那麼將調用默認處理程序。在我們的例子中,這是 index.jsp。”
“假設您有三個文件:index.jsp、apple.jsp、google.jsp。以下是工作原理:”
要求 | 回复 |
---|---|
http://localhost:8888 | 索引.jsp |
http://localhost:8888/ | 索引.jsp |
http://localhost:8888/index.jsp | 索引.jsp |
http://localhost:8888/apple.jsp | 蘋果.jsp |
http://localhost:8888/ samsung.jsp | 錯誤消息:未找到 Servlet |
http://localhost:8888/google.jsp | 谷歌.jsp |
http://localhost:8888/索引 | 錯誤消息:未找到 Servlet |
“我明白那個。”
“Bilaabo,長期以來你一直在說 JSP 很棒。但它們與普通的 HTML 頁面非常相似。一切都完全一樣。”
“嗯,不是全部。嘗試將以下文本添加到 JSP:”
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
<title>Amigo says hi</title>
</head>
<body>
<%--This is still HTML--%>
<%
// But I can write Java code here
String s = "Power to robots!";
for(int i=0; i<10; i++)
{
out.println(s);
out.println("<br>");
}
%>
<%--and this is HTML again--%>
</body>
</html>
“你可以在 JSP 頁面中嵌入 Java 代碼,它就會運行!
“JSP 頁面中的 Java 代碼稱為 scriptlet,包含在 <% 和 %> 標記中”
“哇哦。”
“好吧,我自己去寫幾個JSP頁面。”
“非常感謝你,比拉博。”
“謝謝你,我的朋友!”
GO TO FULL VERSION