摘要:概述是公司提供的一門用于開發動態資源的技術。把開發好的類部署到服務器中。應用程序被停止或重新啟動之前,引擎將卸載,并在卸載之前調用的方法。
servlet概述
Servlet是sun公司提供的一門用于開發動態web資源的技術。
Sun公司在其API中提供了一個servlet接口,用戶若想用發一個動態web資源(即開發一個Java程序向瀏覽器輸出數據),需要完成以下2個步驟:
(1)編寫一個Java類,實現servlet接口。 (2)把開發好的Java類部署到web服務器中。 (3)按照一種約定俗成的稱呼習慣,通常我們也把實現了servlet接口的java程序,稱之為Servlet
servlet運行過程:
(1)Servlet程序是由WEB服務器調用,web服務器收到客戶端的Servlet訪問請求后: ①Web服務器首先檢查是否已經裝載并創建了該Servlet的實例對象。如果是,則直接執行第④步,否則,執行第②步。 ②裝載并創建該Servlet的一個實例對象。 ③調用Servlet實例對象的init()方法。 ④創建一個用于封裝HTTP請求消息的HttpServletRequest對象和一個代表HTTP響應消息的HttpServletResponse對象,然后調用Servlet的service()方法并將請求和響應對象作為參數傳遞進去。 ⑤WEB應用程序被停止或重新啟動之前,Servlet引擎將卸載Servlet,并在卸載之前調用Servlet的destroy()方法。IDEA創建第一個servlet程序
選中自己的project,打開Project Structure界面》》選中Libraries》》點擊"+"并選擇java》》選擇并選中自己的tomcat/lib/servlet-api.jar》》Apply》》OK
通過idea創建servlet,選中項目的src目錄,右鍵選擇new
創建一個servlet,命名為testServlet
創建成功后testServlet.java文件中有一行關鍵的代碼:
@WebServlet(name = "TestServlet") 備注:可以加上具體的urlPattern參數來定義servlet的具體的請求的URL,如下 @WebServlet(name = "TestServlet",urlPatterns = "/test")
示例代碼:
示例代碼分享:
關于servlet之http請求的request與response對象:
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.Enumeration; import java.util.Arrays; @WebServlet(name = "testServlet",urlPatterns = "/test") public class testServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //請求頭,請求行,請求體 System.out.println("請求行:"); System.out.println("url:"+request.getRequestURL()); System.out.println("uri"+request.getRequestURI()); System.out.println("methord:"+request.getMethod()); System.out.println("querystring:"+request.getQueryString()); System.out.println("addr:"+request.getRemoteAddr()); System.out.println("host:"+request.getRemoteHost()); System.out.println("--------------------"); System.out.println("請求頭:"); EnumerationheaderNames = request.getHeaderNames(); while(headerNames.hasMoreElements()){ String key = headerNames.nextElement(); String value = request.getHeader(key); System.out.println(key+"="+value); } System.out.println("--------------------"); System.out.println("請求體:"); Enumeration params = request.getParameterNames(); while (params.hasMoreElements()){ String key = params.nextElement(); //接收的參數中一般有中文,注意編碼 String value = request.getParameter(key); value = new String(value.getBytes("iso-8859-1"),"UTF-8"); System.out.println(key+"="+value); } System.out.println("--------------------"); //開始response //1.二進制流方式輸出 response.setContentType("text/html;charset=UTF-8");//一定要做編碼的設置,否則瀏覽器可能輸出亂碼 //response.getOutputStream().write("中國".getBytes("UTF-8")); //2.字符流方式輸出 response.getWriter().write("字符流"); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74336.html
摘要:系列文章請查看超詳細的面試題總結一之基礎知識篇超詳細的面試題總結二之基礎知識篇超詳細的面試題總結三之集合篇常見問題下面的都是自己之前在學習的時候總結的,對于鞏固的基礎知識應該有很大幫助。注意多線程的并發的讀寫類屬性會導致數據不同步。 系列文章請查看: 超詳細的Java面試題總結(一)之Java基礎知識篇 超詳細的Java面試題總結(二)之Java基礎知識篇 超詳細的Java面試題總結(...
摘要:出現的目的同一樣也是要提到頁面中的腳本代碼。標準標準標簽庫有個子庫,但隨著發展,目前常使用的是他的核心庫標簽庫標簽庫的前綴下載與導入下載從的網站下載的包。 一、JSP技術1.jsp腳本和注釋jsp腳本:1) ----- 內部的java代碼翻譯到service方法的內部2) ----- 會被翻譯成service方法內部out.print()3) ---- 會被翻譯成servlet的成員的...
摘要:協議版本請求頭客戶端向服務器端表示,我能支持什么類型的數據。在地址欄上輸入項目名稱向報告,我這個應用里面有這個,名字叫做具體的路徑是注冊的映射。的配置,通過這個對象,可以獲取在配置的時候一些信息先說,在寫怎么用,最后說有什么用。 1.Http協議 什么是協議 雙方在交互、通訊的時候, 遵守的一種規范、規則。 http協議 針對網絡上的客戶端 與 服務器端在執行http請求的時候...
摘要:當后繼請求相同的頁面時,容器加載之前生成的類,并且通知去執行已經存在的字節碼,從而省去了轉換的過程,這也是第一次執行頁面時間較長的原因。 以往學習的時候大多是看完書或者看完視頻,動手實踐一下就OK了。然而過了一段時間我發現東西都忘差不多了,需要復習才能重新掌握。現在開始學習JavaWeb了,我將在這里記錄自己的學習的一點一滴,不僅便于自己以后回顧知識點,也希望能對JavaWeb初學者有...
摘要:創建與銷毀對象是發送請求服務器就會創建它,當響應產生時,對象就會銷毀。是容器為開發人員提供的對象,它提供了對某一資源的已過濾請求調用鏈的視圖。 一、Listener監聽器 Javaweb開發中的監聽器,是用于監聽web常見對象 HttpServletRequest HttpSession ServletContext 監聽它們的創建與銷毀 屬性變化 session綁...
閱讀 3566·2023-04-25 16:35
閱讀 706·2021-10-11 11:09
閱讀 6177·2021-09-22 15:11
閱讀 3360·2019-08-30 14:03
閱讀 2601·2019-08-29 16:54
閱讀 3353·2019-08-29 16:34
閱讀 3060·2019-08-29 12:18
閱讀 2130·2019-08-28 18:31