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類中,找到doGet
或doPost
方法,根據需要覆蓋其中一個或兩個。
覆蓋Servlet類中的doGet
和doPost
方法 它們分別用于處理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的原理會細聊一下 :簡單理解一下各位?
轉發是服務器內部把請求從一個頁面傳到另一個頁面,用戶看不到這個過程,地址欄也不會變。
重定向是服務器告訴瀏覽器去另一個地址,瀏覽器會顯示新的地址,用戶可以看到這個過程。
轉發通常用于服務器內部處理,重定向通常用于改變用戶瀏覽器的地址。