中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Servlet注釋的方式有哪些

這篇文章主要講解了“ Servlet注釋的方式有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ Servlet注釋的方式有哪些”吧!

創新互聯網絡公司擁有十余年的成都網站開發建設經驗,數千家客戶的共同信賴。提供成都網站設計、網站制作、網站開發、網站定制、買友情鏈接、建網站、網站搭建、響應式網站開發、網頁設計師打造企業風格,提供周到的售前咨詢和貼心的售后服務

值得注意的是,部署描述符優先于注釋。換句話說,部署描述符覆蓋通過注釋機制所規定的配置信息。

Web 部署描述符的 3.0 版本在 web-app 元素上包含一種名為 metadata-complete 的新屬性。該屬性定義了 web 描述符是否完整,或者 web 應用程序的類文件是否針對指定部署信息的注釋而進行檢查。如果該屬性被設置為 true,則部署工具必須忽略類文件中所存在的任何 servlet注釋,并只使用描述符中所提及的配置細節。否則,如果沒有指定該值或者該值被設置為 false,容器必須針對注釋而掃描應用程序的所有類文件。這個屬性提供了在應用程序啟動階段啟用或者禁用注釋掃描以及對注釋的處理。

在 Servlet 3.0 中所引入的所有注釋都可以在 javax.servlet.http.annotation 和 javax.servlet.http.annotation.jaxrs 軟件包中找到。

@Servlet:javax.servlet.http.annotation.Servlet 是一個類級別的注釋,確認經過注釋的類為一個 servlet 并保存關于所聲明的 servlet 的元數據。urlMappings 屬性是指定 URL 模式(調用該 servlet)的 @Servlet 的強制屬性。當接收到了一個請求時,容器將請求中的 URL 與 servlet 的 urlMappings 進行匹配,且如果 URL 模式匹配,則調用相應的 servlet 以響應該項請求。該注釋的所有其他屬性都是可選的,并帶有合理的默認值。Servlet 類中必須有一種使用像 GET、PUT、POST、HEAD 或者 DELETE 這樣的 HttpMethod 注釋進行注釋的方法。這些方法應將 HttpServletRequest 和 HttpServletResponse 作為方法參數。與以前的版本相反,servlets 3.0 的版本可以作為簡單傳統 Java 對象(Plain Old Java Objects,POJOs)而實現;也就是 servlets 不必再擴展像 HTTPServlet 或者 GenericServlet 這樣的基礎 servlet 實現類。

為了進行比較,在此給出了使用傳統 Servlet 2.5 API 編寫的 Java servlet 代碼片段,如下所示。在 Servlet 2.5 中,只要在部署描述符中配置了 servlet 的詳細信息,web 容器就將初始化 servlet。

public class MyServlet extends HttpServlet {  public void doGet (HttpServletRequest req,  HttpServletResponse res) {  ....  }  }

Deployment descriptor (web.xml)

<web-app> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>samples.MyServlet</servlet-class> </servlet>  <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyApp</url-pattern> </servlet-mapping> ...   </web-app>

這里給出的是使用 Servlet 3.0 API 編寫的較為簡化的版本。當 MyServlet 使用 @Servlet注釋而被注釋為一個 servlet 時,則在 web 容器的啟動期間對其初始化。注意,在這種情況下部署描述符是可選的。

@Servlet(urlMappings={"/MyApp"})  public class MyServlet {  @GET  public void handleGet(HttpServletRequest req,  HttpServletResponse res) {  ....  }  }  Deployment descriptor (web.xml)   optional

@ServletFilter 和 @FilterMapping:您可以使用 javax.servlet.http.annotation.ServletFilter 注釋來注釋過濾器類,從而輕松創建一個 servlet 過濾器。該注釋封裝正被聲明的過濾器的有關元數據。在過濾器類上具有 @FilterMapping 注釋也是強制性的。@FilterMapping 注釋定義用于過濾器的 URL 模式。@ServletFilter 的所有其他屬性都是可選的,并帶有合理的默認值。V3.0 過濾器類現在類似 POJO 類,并且沒有用于這些類所需的 Filter 接口或者非參數公用構造器。以下給出了使用 Servlet v2.5 API 的過濾器類的代碼片段:

public class MyFilter implements Filter {  public void doFilter(ServletRequest req,  ServletResponse res,  FilterChain chain)  throws IOException, ServletException {  ......  }  }   Deployment descriptor (web.xml)   <web-app> <filter> <filter-name>My Filter</filter-name> <filter-class>samples.MyFilter</filter-class> </filter>  <filter-mapping> <filter-name>My Filter</filter-name> <url-pattern>/foo</url-pattern> </filter-mapping> ...  </web-app>

使用 Servlet 3.0 編寫的一個示例過濾器類如下所示。因為該類使用 ServletFilter 注釋,所以容器將 MyFilter 標記為一個過濾器類。MyFilter 截取所有收到的請求,其中該請求的 URL 匹配模式 /foo。Servlet 3.0 為過濾器配置提供了可選的部署描述符。

@ServletFilter  @FilterMapping("/foo")  public class MyFilter {  public void doFilter(HttpServletRequest req,  HttpServletResponse res) {  .....  }  }   Deployment descriptor (web.xml)   optional

@InitParam:該注釋可以用來定義必須傳遞給 servlet 或者過濾器類的任意初始化參數。它是 @Servlet 和 @ServletFilter 注釋的一個屬性。以下代碼示例解釋了如何將具有 english 值、稱作 lang 的初始化參數傳遞給一個 servlet 類。

  1. @Servlet(urlMappings={"/MyApp"}, initParams ={@InitParam
    (name="lang", value="english")})  

  2. public class MyServlet {  

  3. @GET  

  4. public void handleGet(HttpServletRequest req,  

  5. HttpServletResponse res) {  

  6. ....  

  7. }  

@ServletContextListener:javax.servlet.http.annotation.ServletContextListener 注釋將該類聲明為一個 servlet 上下文偵聽器。當 web 容器創建或者銷毀 ServletContext 時,該上下文偵聽器接收注釋。上下文偵聽器是一個 POJO 類,且不必實現 ServletContextListener 接口。使用 Servlet 2.5 API 編寫的偵聽器類如下所示。當且僅當您在部署描述符中配置了該偵聽器類,容器才識別它。

public class MyListener implements ServletContextListener {  public void contextInitialized(ServletContextEvent sce) {   }  .....  }   Deployment Descriptor (web.xml)   <web-app> <listener> <listener-class>samples.MyListener</listener-class> </listener> ....  </web-app>

使用 Servlet 3.0 API 編寫的一個得到極大簡化的偵聽器類,如下所示。

@ServletContextListener  public class MyListener {  public void contextInitialized (ServletContextEvent sce) {   }  .....  }   Deployment Descriptor (web.xml)   optional

感謝各位的閱讀,以上就是“ Servlet注釋的方式有哪些”的內容了,經過本文的學習后,相信大家對 Servlet注釋的方式有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

文章題目:Servlet注釋的方式有哪些
網站URL:http://m.2m8n56k.cn/article42/jdccec.html

成都網站建設公司_創新互聯,為您提供動態網站定制開發網站制作網站建設響應式網站面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化
主站蜘蛛池模板: 香港激情三级做爰小说 | 在线观看亚洲欧美 | 一级毛片免费不卡夜夜欢 | 日韩免费高清一级毛片 | 7777在线| 手机看成人片 | 在线观看免费亚洲 | 欧美国产日韩久久久 | 久久成人国产精品免费 | 一级毛片儿 | 国产精品视频免费一区二区三区 | 最新中文字幕乱码在线 | 一级片国产| 日本视频在线免费播放 | 欧美日韩一区二区三区高清不卡 | 久久在视频| 国产精品亚洲精品影院 | 亚洲一级在线观看 | 免费a黄色 | 欧美大片毛片aaa免费看 | 亚洲va中文字幕 | 步兵一区二区三区在线观看 | 国产成人禁片免费观看 | 亚洲精品人成在线观看 | a级在线观看 | 久草视频官网 | 久久韩国 | 91亚洲国产 | 台湾三级香港三级在线中文 | 亚洲一级毛片在线观播放 | 亚州中文 | 欧美成人精品动漫在线专区 | 日韩欧美国产高清在线观看 | 免看一级a一片成人123 | 国内精品久久久久久久影视麻豆 | 免看一级a毛片一片成人不卡 | 欧美成人性色大片在线观看 | 成人免费网站视频www | 成年女人午夜免费视频 | 欧美一区二区日韩一区二区 | 国产免费久久精品 |