1. 程式人生 > >java Web 工程servlet中@WebServlet("/HelloServlet") 是怎麼工作的

java Web 工程servlet中@WebServlet("/HelloServlet") 是怎麼工作的

編寫好Servlet之後,接下來要告訴Web容器有關於這個Servlet的一些資訊。在Servlet 
3.0中,可以使用標註(Annotation)來告知容器哪些Servlet會提供服務以及額外資訊。例如在HelloServlet.java中:
@WebServlet("/hello.view")
public class HelloServlet extends HttpServlet {
只要在Servlet上設定@WebServlet標註,容器就會自動讀取當中的資訊。上面的@WebServlet告訴容器,如果請求的URL是“/hello.view”,則由HelloServlet的例項提供服務。可以使用@WebServlet提供更多資訊。
@WebServlet(
name="Hello",
urlPatterns={"/hello.view"},
loadOnStartup=1
)
public class HelloServlet extends HttpServlet {

面的@WebServlet告知容器,HelloServlet這個Servlet的名稱是Hello,這是由name屬性指定的,而如果客戶端請求的
URL是/hello.view,則由具Hello名稱的Servlet來處理,這是由urlPatterns屬性來指定的。在Java
EE相關應用程式中使用標註時,可以記得的是,沒有設定的屬性通常會有預設值。例如,若沒有設定@WebServlet的name屬性,預設值會是
Servlet的類完整名稱。
當應用程式啟動後,事實上並沒有建立所有的Servlet例項。容器會在首次請求需要某個Servlet服務時,才
將對應的Servlet類例項化、進行初始化操作,然後再處理請求。這意味著第一次請求該Servlet的客戶端,必須等待Servlet類例項化、進行
初始動作所必須花費的時間,才真正得到請求的處理。
如果希望應用程式啟動時,就先將Servlet類載入、例項化並做好初始化動作,則可以使用
loadOnStartup設定。設定大於0的值(預設值為-1),表示啟動應用程式後就要初始化Servlet(而不是例項化幾個Servlet)。數
字代表了Servlet的初始順序,容器必須保證有較小數字的Servlet先初始化,在使用標註的情況下,如果有多個Servlet在設定
loadOnStartup時使用了相同的數字,則容器實現廠商可以自行決定要如何載入哪個Servlet。
補充新增:標註(Annotation)聲明後,則不需要在Web.xml中再次宣告servlet的相關資訊了: 
<servlet>
<servlet-name>HServlet</servlet-name>
<servlet-class>com.kim.demo.HelloServlet</servlet-class>
 <load-on-startup>1</load-on-startup> 
</servlet>
<servlet-mapping>
<servlet-name>HServlet</servlet-name>
<url-pattern>/HServlet</url-pattern>
</servlet-mapping>
轉載來源:http://blog.csdn.net/Dunhuang_Hyoutei/article/details/55669511

相關推薦

java Web 工程servlet@WebServlet("/HelloServlet") 是怎麼工作

編寫好Servlet之後,接下來要告訴Web容器有關於這個Servlet的一些資訊。在Servlet 3.0中,可以使用標註(Annotation)來告知容器哪些Servlet會提供服務以及額外資訊。例如在HelloServlet.java中:@WebServlet("/h

java Web 工程servlet@WebServlet("/HelloServlet")原理

多個 方便 ive http isp .org ada ado view 編寫好Servlet之後,接下來要告訴Web容器有關於這個Servlet的一些信息。在Servlet 3.0中,可以使用標註(Annotation)來告知容器哪些Servlet會提供服務以及額外信息

Java Web(二) Servletresponse、request亂碼問題解決

nco post ima 處理 height http api img tle       三月不減肥,五月徒傷悲,這就是我現在的狀態,哈哈~ 健身、博客堅持。                               --WH 一、request請求參數出現的亂碼問題 

Java Web筆記 – Servlet的Filter過濾器的介紹和使用 編寫過濾器

1、過濾器介紹: 在Servlet規範2.3中定義了過濾器,它能夠對Servlet容器的請求和響應物件進行檢查和修改。 Servlet過濾器本身並不生成請求和響應物件,只是提供過濾功能。 Servlet過濾器能夠在Servlet被呼叫之前檢查Request物件,並修改Request Header和R

IDEA新建Java Web工程註意事項

let idea microsoft 文件 ica clas 每次 部署方式 art IDEA中註意事項 在WEB-INF下新建lib和classes不是必須的。如果自己新建了,每次必須手動將jar依賴在src和web下的lib都新放一份。 getServlet

IDEA新建Java Web工程注意事項

IDEA中注意事項 在WEB-INF下新建lib和classes不是必須的。如果自己新建了,每次必須手動將jar依賴在src和web下的lib都新放一份。 getServletConfig().getServletContext().getRealPath()如果在idea中使用,需

java web工程獲取webroot 路徑

在web.xml中加入 <context-param> <param-name>webAppRootKey</param-name> <param-value> ebop-s

設定java web工程預設訪問首頁的幾種方式

1.demo中最常見的方式是在工程下的web.xml中設定(有時候根據業務可能需要設定action,在action中處理邏輯載入跳轉什麼的,比較少): <welcome-file-list> <welcome-file>index.jsp</welcome-file&

JAVA WEB工程web.xml檔案

在傳統的java web專案中不可避免的是要配置web.xml檔案,在應用啟動時web.xml用來初始化工程配置資訊,其重要性就不言而喻了。 既然是xml檔案,它就遵循一些xml檔案的書寫規格,這裡就不說明了,web.xml所對應的xml Schema檔案中定

ideajava web工程打包+用tomcat伺服器釋出JSP網站

如何將jsp檔案上傳到外網,這個問題困擾了我很久,今天找了一整個上午的時間來學習 之前的網站是用iis上傳的,今天才知道iis管理器不能上傳jsp檔案,但是可以通過修改tomcat伺服器配置來把jsp檔案上傳,我是用idea編的jsp檔案,這裡就說下idea的做法,不過ec

MVC模式在Java Web應用程序的實例分析

rip run writer fault esp 身份驗證 int 網站 table 結合六個基本質量屬性 可用性: 異常 可修改性: 1.維持語義的一致性,高內聚低耦合 2.維持現有的接口,Login依賴LoginIService接口,LoginService依賴ILog

MVC模式在Java Web應用程序的實例

simple handler hand resolv let handle 增加 獨立 efault 1.可用性 使用SimpleMappingExceptionResolver實現異常處理 只需要在Spring的配置文件applicationContext.xml中增加

java web 工程找不到tomcat類 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

ood cep 找不到 otf 技術分享 .get http except 分享 ava.lang.ClassNotFoundException: com.mysql.jdbc.Driverat org.apache.catalina.loader.WebappClassL

Java webservlet

詳細講解 get() 註意 des api 一個 剛才 分享 ima 入坑必備之ser

Java Web(一) Servlet詳解!!

註意 ont 道理 resource 通過 long values arr 客戶端請求     這篇文章到上一篇,距離的有點遙遠呀,隔了大概有兩個月把,中間在家過了個年,哈哈~ 現在重新開始拾起,最近在看一本個人覺得很棒的書,《Java Web 整合開發王者歸來》,現在寫的

java web項目怎麽使用href鏈接不同文件夾的jsp文件

use scl 忘記密碼 -s 否則 href web 引用 log     在寫java web項目時需要定義很多jsp文件,如果全部統一放在WebContent的根目錄下看起來就會比較亂,時間久了自己也會找不到具體的jsp文件對應的功能是什麽,所以最好在WebConte

java web項目redis集群或單擊版配置詳解

redis集群 redis單機 jedis jedis客戶端集群 jedis客戶端單機 單機版配置 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!--

Java EE javax.servlet的ServletConfig接口

pub parameter 類名 init interface ner web.xml 初始 ali ServletConfig接口   public interface ServletConfig   實現類:GenericServlet、HttpServlet   

java webServlet生命周期

控制臺顯示 encoding port protect err 我們 sys 技術 vax 在Java web中 Servlet 是根基。雖然工作中幾乎沒人再去寫Servlet了,框架為我們完成了這些工作。我們只要專註於業務邏輯的實現。但是理解Servlet還是很有必要的。

利用proguard對java web工程代碼混淆

tail com nload 遇到 follow 反編譯 parse 代碼 zha 目標: 將代碼混淆,也就是給第三方源代碼,讓他們只能運行,卻看不懂代碼。 用到的工具: 混淆jar的工具:proguard5.1 下載地址:http://download.csdn.n