JavaWeb Sevelet學習 創建Sevelet程序

Servlet 是JavaWeb中的開發動態Web一門技術? 是由Sun公司提供的一個接口,允許開發者編寫運行在服務器(Tomcat)上的Java程序,這些程序可以 生成動態網頁內容, 響應客戶端的請求。簡單來說,Servlet就是Java EE規范中定義的用于開發服務器端應用程序的API。

通過 Sevelt接口實現java程序:

開發一個簡單的Servlet程序通常只需要兩個基本步驟:?

1:創建一個類 實現Sevelt接口? -->2: 把開發的好的接口 部署到Web(Tomcat )服務器當中;

通過IEAD 構建普通 Maven項目 :

后面可以在這個SeveltApp Maven主工程中 構建新的Model 文件;

2:? 在Pom文件導入Sevelt?所需要的依賴 :

這里提供一個Maven倉庫 地址 提供了不同版本的項目依賴 :

Maven倉庫

? ? ? ? ? ?導入Servlet API這是Servlet API的標準實現??

<!--Servlet API --><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>
</dependencies>

? ? ? ? ?導入JSP API依賴?? Servlet需要與JSP頁面交互,這個依賴是必需的。

<!-- JSP API -->
<dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope>
</dependency>

3: 在SeveletApp 下 構建子工程項目:

創建 Sevelt-01??子工程

這一步記得把安裝的Maven地址和 setting文件配置地址 根據自己的本地文件目錄記得 一致

創建完成子模塊:

這個父項目包含一個Sevelet-01 的子模塊?這種層級關系有助于組織和管理大型軟件項目。模塊化使得代碼更加清晰和易于維護,并且子模塊可以使用父模塊的Jar包;

完善Sevelet-01 項目結構 :

創建一個三層的層級目錄

創建一個Sevelet java普通類

創建好以后 子模塊會默認去使用父層級的 pom依賴 繼承 HttpServlet apii?

在生成的Servlet類中,找到doGetdoPost方法,根據需要覆蓋其中一個或兩個。

覆蓋Servlet類中的doGetdoPost方法 它們分別用于處理HTTP GET和POST請求

我們可以在2種方式內可以對應自己的需求編寫 不同的輸出方式 :

比如:? 使用HttpServletResponse對象的getWriter()方法來獲取PrintWriter,并直接向客戶端發送文本內容(如HTML頁面)。

   @Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        設置響應內容類型:resp.setContentType("text/html");
//        獲取PrintWriter對象:PrintWriter out = resp.getWriter();
//        發送HTML內容:out.println("<html><body>");out.println("<h1>The is My Web</h1>");out.println("</body></html>");
//        關閉PrintWriter 輸出流out.close();}

當然也可以使用轉發和重定向的方式進行:

轉發方式:

可以根據自己的需求添加一些資源進行轉發 如 :在源Servlet中設置屬性 
String name = "kangkang"; // 假設這是根據某些業務邏輯獲取的名字 request.setAttribute("name", name); 
轉發的地址
RequestDispatcher dispatcher = req.getRequestDispatcher("/MyServlet");
執行轉發
dispatcher.forward(req, resp);

重定向方式:

//      執行重定向 可以重定向到同一服務器上的另一個頁面,或者指向完全不同的服務器和域名。
//        這個地址根據自己加 確保URL是有效的resp.sendRedirect("http://xxx/xxx");}

添加web映射:

設置web.xml 映射路徑這里我們根據第一個案例來演示:

設置web 映射的目的是? 我們寫的java 程序需要通過瀏覽器訪問 而瀏覽器需要連接web服務器的 所以需要添加web映射 注冊我們的Servlet::

配置Tomcat 服務器:

添加請求路徑?

啟動tomcat:

這里因為要工作原因 下篇補全我的一些可能存在的一些誤區 :還有 關于轉發和重定向的原理我下篇關于Servelt的原理會細聊一下 :簡單理解一下各位?

轉發是服務器內部把請求從一個頁面傳到另一個頁面,用戶看不到這個過程,地址欄也不會變。

重定向是服務器告訴瀏覽器去另一個地址,瀏覽器會顯示新的地址,用戶可以看到這個過程。

轉發通常用于服務器內部處理,重定向通常用于改變用戶瀏覽器的地址。

未完待續:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14415.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14415.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

今日arXiv最熱大模型論文:LoRA又有新用途,學得少忘得也少,成持續學習關鍵!

自大模型&#xff08;LLM&#xff09;誕生以來&#xff0c;苦于其高成本高消耗的訓練模式&#xff0c;學界和業界也在努力探索更為高效的參數微調方法。其中Low-Rank Adaptation&#xff08;LoRA&#xff09;自其誕生以來&#xff0c;就因其較低的資源消耗而受到廣泛關注和使用…

Spring MVC八股文面試題及參考答案(4萬字長文)

目錄 什么是Spring MVC? 解釋MVC模式及其在Spring MVC中的實現。 Spring MVC和Struts的區別是什么?

瑞芯微RV1126——交叉編譯與移植

一、搭建這個nfs服務掛載 (1) sudo apt install nfs-kernel-server (2) 然后在你的ubuntu創建一個nfs共享目錄&#xff1a; (3) sudo /etc/init.d/nfs-kernel-server restart 重啟nfs服務 (4) 修改配置文件: sudo vim /etc/exports 在這個配置文件里面添加&#xff1a;/hom…

C語言/數據結構——每日一題(設計循環隊列)

一.前言 上一次我們分享了關于隊列的基本實現——https://blog.csdn.net/yiqingaa/article/details/139033067?spm1001.2014.3001.5502 現在我們將使用隊列知識來解決問題——設計循環隊列&#xff1a;https://leetcode.cn/problems/design-circular-queue/submissions/533299…

50.WEB滲透測試-信息收集-CDN識別繞過(3)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a; 易錦網校會員專享課 上一個內容&#xff1a;49.WEB滲透測試-信息收集-CDN識別繞過&#xff08;2&#xff09; 關于cdn的識別方法內容…

Leecode熱題100--73:矩陣置零

題目&#xff1a; 給定一個 m x n 的矩陣&#xff0c;如果一個元素為 0 &#xff0c;則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 C&#xff1a; 思路&#xff1a; 可以使用兩個數組來記錄哪些行和列需要被置零。 首先&#xff0c;我們遍歷整個矩陣&#xff0c;…

設計模式--享元模式

引言 享元模式&#xff08;Flyweight Pattern&#xff09;作為一種高效節省內存的結構型設計模式&#xff0c;其核心在于通過共享技術有效支持大量細粒度對象的重用&#xff0c;從而減少內存占用&#xff0c;提高系統性能。特別是在處理大量相似對象的場景下&#xff0c;享元模…

智慧監獄人員行為識別監測系統

智慧監獄人員行為識別監測系統是基于神經網絡AI視覺智能分析算法開發的技術。智慧監獄人員行為識別監測系統利用現場監控攝像頭&#xff0c;通過對人體活動骨架的結構化分析&#xff0c;根據人體運動軌跡定義了多種異常行為&#xff0c;從而實現對監舍內的靜坐不動、離床、攀高…

Tron節點監控腳本使用說明

文章目錄 一、配置二、腳本編寫2.1 Python腳本--監控節點是否正在同步2.1.1 pyton腳本腳本示例2.1.2 使用說明2.2.3 腳本監控內容說明 2.2 Shell腳本--綜合情況監控2.2.1 shell腳本示例2.2.2 使用說明2.2.3 腳本監控內容說明 最近搭建了TRON節點&#xff0c;為了防止節點在生產…

Mixiy(米思齊)安裝

Mixiy(米思齊)安裝 官網地址&#xff1a;愛上米思齊 打開官網&#xff0c;選擇下圖的軟件進行下載 復制提取碼&#xff0c;點擊鏈接跳轉到網盤進行下載&#xff0c;選擇(RC4完整版) 下載完成后&#xff0c;解壓到合適的位置&#xff0c;進入文件夾&#xff0c;雙擊Mixly.exe即…

Docker 部署Jenkins

1、運行鏡像 docker run --namejenkins \--restartalways \--privilegedtrue \-u root \-p 8080:8080 \-p 50000:50000 \-v /home/docker/jenkins/jenkins_home:/var/jenkins_home \-v /usr/bin/docker:/usr/bin/docker \-v /var/run/docker.sock:/var/run/docker.sock \-e TZ…

【Crypto】MD5

文章目錄 MD5解題感悟 MD5 提示的很明顯MD5 小小flag&#xff0c;拿下&#xff01; 解題感悟 沒啥感悟…

Java輸入與輸出詳解

Java輸入和輸出 前言一、Java打印Hello World二、輸出到控制臺基本語法代碼示例格式化字符串 三、從鍵盤輸入讀入一個字符正確寫法 使用 Scanner 讀取字符串/整數/浮點數使用 Scanner 循環讀取 N 個數字 前言 推薦一個網站給想要了解或者學習人工智能知識的讀者&#xff0c;這…

使用 Java 和 MyBatis 實現動態排序的多表查詢

相關 java實現一個根據字段和排序方式進行排序 java實現自定義排序 自定義動態排序 前言 在Web開發中&#xff0c;前端通常會傳遞一些參數來決定數據的排序方式&#xff0c;例如排序字段和排序方向。本文將展示如何在 Java 項目中結合 MyBatis 實現動態排序&#xff0c;尤其…

MySQL-性能分析

1、數據庫服務器的優化步驟 2、查看系統性能參數 可以使用show status語句查詢一些MySQL數據庫服務器的性能參數 執行頻率語法格式&#xff1a;show [ global | session ] status like 參數 &#xff1b;常用性能參數如下所示 參數名說明connection連接MySQL服務器的次數upti…

Autodesk 3ds Max下載,3ds MAX 2024三維建模渲染軟件安裝包下載安裝

3ds MAX中文版&#xff0c;其強大的功能和靈活的操作為廣大用戶提供了無限的創意空間&#xff0c;使得高質量動畫、最新游戲、設計效果等領域的制作需求得以完美滿足。 ? 作為一款三維建模軟件&#xff0c;3ds MAX中文版具備極高的建模精度和渲染質量。它支持多種建模方式&am…

【Fiddler抓包工具】第四節.斷點設置和弱網測試

文章目錄 前言一、斷點設置 1.1 全局斷點 1.2 局部斷點 1.3 打斷點的幾種常用命令 1.4 篡改響應報文二、弱網測試 2.1 網絡限速 2.2 精準限速總結 前言 一、斷點設置 1.1 全局斷點 特點&#xff1a; 中斷Fiddler捕獲的所有請求&#xff0c;包括…

記錄一次prometheus因時區不同導致的無法獲取數據問題

一、故障出現原因 prometheus機器壓力過大&#xff0c;內存耗盡&#xff0c;負載飆高&#xff0c;導致無法登錄&#xff1b; 于是從公有云web界面進行重啟&#xff0c;重啟后內存還是不足&#xff0c;負載很快升高&#xff1b; 對機器進行配置變更&#xff0c;由4C8G升級為4…

在鏈游中,智能合約如何被用于實現游戲內的各種功能

隨著區塊鏈技術的快速發展&#xff0c;鏈游&#xff08;Blockchain Games&#xff09;作為區塊鏈技術的重要應用領域之一&#xff0c;正逐漸展現出其獨特的魅力和優勢。其中&#xff0c;智能合約作為鏈游的核心技術之一&#xff0c;對于實現游戲內的各種功能起到了至關重要的作…

【C++初階】—— 類和對象 (下)

&#x1f4dd;個人主頁&#x1f339;&#xff1a;EterNity_TiMe_ ?收錄專欄?&#xff1a;C “ 登神長階 ” &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; 類和對象 1. 運算符重載運算符重載賦值運算符重載前置和后置重載 2. 成員函數的補充3. 初始化列…