日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

html与java接口,JavaWeb学习——Servlet相关的接口和类

發布時間:2024/8/23 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html与java接口,JavaWeb学习——Servlet相关的接口和类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaWeb學習——Servlet相關的接口和類

摘要:本文主要學習了Servlet相關的接口和類。

Servlet的接口和類

三種方式

實現Servlet有三種方式:

實現javax.servlet.Servlet接口。

繼承javax.servlet.GenericServlet類。

繼承javax.servlet.http.HttpServlet類。

實現Servlet接口

Servlet接口是最基礎的接口,如果要使用Servlet,就要實現這個接口,或者繼承其他已經實現了這個接口的類。

創建一個類并實現Servlet接口:

1 public class TestServlet implements Servlet {

2 @Override

3 public ServletConfig getServletConfig() {

4 return null;

5 }

6

7 @Override

8 public String getServletInfo() {

9 return null;

10 }

11

12 @Override

13 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

14 System.out.println("service()方法被執行……");

15 }

16

17 @Override

18 public void init(ServletConfig config) throws ServletException {

19 System.out.println("init()方法被執行……");

20 }

21

22 @Override

23 public void destroy() {

24 System.out.println("destroy()方法被執行……");

25 }

26 }

繼承GenericServlet類

GenericServlet類實現并重寫了Servlet接口的一些方法,使得程序員在開發的時候只需要關注service()方法的實現就好。

創建一個類并繼承GenericServlet類:

1 public class TestServlet extends GenericServlet {

2 @Override

3 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

4 System.out.println("service()方法被執行……");

5 }

6 }

繼承HttpServlet類

HttpServlet類繼承了GenericServlet類,是對HTTP請求的特殊支持,由于開發的項目一般遵循HTTP協議,所以經常使用的是HttpServlet類。

在HttpServlet的service(HttpServletRequest, HttpServletResponse)方法會去判斷當前請求是GET還是POST,如果是GET請求,那么會去調用本類的doGet()方法,如果是POST請求會去調用doPost()方法,這說明在子類中去重寫doGet()或doPost()方法即可。

創建一個類并繼承HttpServlet類:

1 public class TestServlet extends HttpServlet {

2 @Override

3 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

4 super.doGet(req, resp);

5 }

6

7 @Override

8 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

9 super.doPost(req, resp);

10 }

11 }

其他的接口和類

ServletConfig接口

代表當前Servlet的配置信息,封裝了ServletContext對象和配置參數信息。

可以通過Servlet里面的getServletConfig()方法獲取:

1 public ServletConfig getServletConfig();

常用方法:

1 public String getServletName();// 獲取當前Servlet的友好名稱。

2 public ServletContext getServletContext();// 獲取ServletContext對象。

3 public String getInitParameter(String name);// 獲取初始化參數,初始化參數可以在web.xml配置文件的標簽里的標簽里設置。

4 public Enumeration getInitParameterNames();// 獲取全部初始化參數,初始化參數同樣需要在web.xml配置文件的標簽里的標簽里設置。

ServletContext接口

代表當前Web應用,服務器為每個Web應用程序都創建一個對應的ServletContext對象,被所有客戶端共享。當Web應用啟動時自動創建,當Web應用關閉和重新啟動、服務器關閉時都會造成ServletContext銷毀。

可以通過ServletConfig里面的getServletContext()方法獲取:

1 public ServletContext getServletContext();

常用方法:

1 public String getServletContextName();// 獲取當前項目的名稱。

2 public String getServerInfo();// 返回Servlet容器名稱和版本號。

3 public ServletContext getContext(String uripath);// 通過路徑獲取ServletContext對象。

4 public String getContextPath();// 獲取服務器上當前項目的相對目錄。比如:/HelloWorld。

5 public String getRealPath(String path);// 得到指定文件的真實路徑,從應用程序根目錄開始。比如:TestServlet得到的是盤符:\文件夾\工作空間\項目名稱\WebContent\TestServlet。

6 public Set getResourcePaths(String path);// 得到指定相對路徑下的文件夾名和文件名,從應用程序根目錄開始,指定路徑必須以/開頭。比如:/得到的是應用程序根目錄下的內容。

7 public URL getResource(String path) throws MalformedURLException;// 得到指定相對路徑下的地址,從應用程序根目錄開始。比如:/得到的是jndi:/域名/項目名/。

8 public InputStream getResourceAsStream(String path);// 將指定文件轉化為流以便讀取,從應用程序根目錄開始。比如:index.html可以獲取到應用程序根目錄下的index.html并轉為流。

9 public RequestDispatcher getRequestDispatcher(String path);// 創建跳轉到指定路徑的轉發器,從應用程序根目錄開始,指定路徑必須以/開頭。

10 public RequestDispatcher getNamedDispatcher(String name);// 創建跳轉到指定Servlet名的轉發器,不需要也不能以/開頭。

11 public String getInitParameter(String name);// 獲取指定的初始化參數,初始化參數需要在web.xml配置文件的標簽里設置。

12 public Enumeration getInitParameterNames();// 獲取所有指定的初始化參數,初始化參數也需要在web.xml配置文件的標簽里設置。

13 public boolean setInitParameter(String name, String value);// 設置初始化參數,效果同在web.xml配置文件的標簽里設置的一樣。

14 public Object getAttribute(String name);// 通過屬性名獲取屬性對象。

15 public Enumeration getAttributeNames();// 獲取全部屬性名。

16 public void setAttribute(String name, Object object);// 設置屬性名和屬性對象。

17 public void removeAttribute(String name);// 通過屬性名刪除屬性對象。

RequestDispatcher接口

RequestDispatcher實例對象是由Servlet引擎創建的,用于包裝一個要被其他資源調用的資源,并可以通過其中的方法將客戶端的請求轉發給所包裝的資源。

RequestDispatcher接口中定義了兩個方法:forward()方法和include()方法。forward()和include()方法接收的兩個參數,必須是傳遞給當前Servlet的service()方法的ServletRequest和ServletResponse對象,或者是對它們進行了包裝的ServletRequestWrapper和ServletResponseWrapper對象。

可以通過ServletContext對象的getRequestDispatcher()方法和getNamedDispatcher()方法獲取:

1 public RequestDispatcher getRequestDispatcher(String path);

2 public RequestDispatcher getNamedDispatcher(String name);

請求轉發:

1 // 該方法用于將請求從一個Servlet傳遞到服務器上另外的Servlet、Jsp頁面或者Html文件,由當前的Servlet發送給另一個Servlet,該方法必須在響應被提交給客戶端之前調用。

2 // 在當前的Servlet中可以給請求設置屬性,設置的響應頭信息不回被忽略,但是設置的響應體信息可能會被忽略。

3 public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException;

請求包含:

1 // 該方法用于在響應中包含Servlet、Jsp頁面或者Html文件,由當前的Servlet發送給客戶端,必須要在當前Servlet中設置編碼格式。

2 // 當前Servlet和要包含的資源都可以設置響應體,按先后順序輸出到客戶端。

3 public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException;

請求轉發與請求包含比較:

請求轉發大多是應用在Servlet中,轉發目標大多是Jsp頁面。

請求包含大多是應用在Jsp頁面中,完成多頁面的合并。

總結

以上是生活随笔為你收集整理的html与java接口,JavaWeb学习——Servlet相关的接口和类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。