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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Servlet细节

發布時間:2025/4/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Servlet细节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

修改發布到tomcat/webapps下面的應用名稱:Web Project Settings。

?

修改或刪掉Servlet,web.xml里面相關的配置不會與之同步。

?

Servlet的實現類:

1.GenericServlet:覆寫感興趣的方法,一般情況下,只需要覆寫service方法。

2.在web開發中,由于使用http協議,程序員在編寫servlet時,一般都是繼承GenericServlet的子類HttpServlet。

在HttpServlet中覆寫了service方法,該方法體內的代碼會自動判斷用戶的請求方式,如為GET方式,則調用doGet方法 ,如為post方式,則調用doPost方法。因此,在開發中,我們完全沒有必要覆寫service方法,直接根據請求方式覆寫對應的doGet和doPost方法即可。

3.HttpServlet在調用doGet和doPost方法之前(service方法中),會將ServletRequest和ServletResponse對象強轉成HttpServletRequest和HttpServletResponse。

?

src目錄下面各種類型的文件都會發布到WEB-INF目錄下面的classes文件夾下面。

?

Servlet映射

url-pattern用于指定供外界訪問的路徑或資源名,"/"表示web應用

Servlet映射到的URL中也可以使用*通配符,但是只能有兩種固定的格式:① "*.擴展名" ② 以"/"開頭并以"/*"結尾

such as:

<url-pattern>/itcast/*</url-pattern>

<url-pattern>*.do</url-pattern>

注意:

*.do 與 /*這兩種方式不可同時使用

針對于滿足多個條件的訪問路徑時,只會訪問一個Servlet,此時會訪問路徑最相仿的那個,同時,/*的優先級要高于*.do

?

默認的Servlet映射

<url-pattern>/</url-pattern>

?

load-on-startup元素

servlet 元素中配置此元素,會在web應用加載時實例化并調用其init()方法,數字越小就越先完成初始化,當值小于0或者沒有指定時,表示容器在該servlet被選擇時才會去加載。

?

tomcat\conf\web.xml

該服務器下所有的web應用中的web.xml都繼承自此文件

?

http://localhost:8080/day05/a.html

上面的url訪問的url在web.xml文件中并沒有配置

此時會去訪問缺省的Servlet,在tomcat\conf\web.xml文件中配置了一個缺省的DefaultServlet,它會幫我們去web應用下讀取a.html文件,并打給瀏覽器,如果沒有發送404頁面,也就是說通過IE訪問服務器訪問的都是Servlet。

?

Servlet 線程安全問題

方法的局部變量不會有線程安全問題!

Servlet 創建之后駐留在內存中 所以會出現線程安全問題!

同步的解決方案:對方法的執行過程進行加鎖 synchronized(this) {};

實現接口的解決方案:實現 SingleThreadModel 接口的 Servlet ,服務器會做判斷,當有請求過來,如果 Servlet 對象忙,服務器會再創建一個 Servlet 對象為用戶提供服務,如果 Servlet 閑置,就直接提供服務,這樣的方式實際上是回避了線程安全問題,單線程訪問Servlet,這樣的方式不可取。

轉載于:https://www.cnblogs.com/Knuth/archive/2012/04/26/2471675.html

總結

以上是生活随笔為你收集整理的Servlet细节的全部內容,希望文章能夠幫你解決所遇到的問題。

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