国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ServletContext 與application的異同

2019-11-14 10:08:21
字體:
來源:轉載
供稿:網友

servletContext接口是Servlet中最大的一個接口,呈現了web應用的Servlet視圖。ServletContext實例是通過getServletContext()方法獲得的,由于HttpServlet繼承Servlet的關系GenericServlet類和HttpServlet類同時具有該方法。

條件:假設說我們有一個WEB應用,這個WEB應用中有10個SERVLET 在這里,這個WEB應用就擁有一個它自己的倉庫-ServletContext,而這10個Servlet則共享這個大倉庫,并且各自擁有屬于他們自己的小倉庫-ServletConfig。 ServletContext就是一個全局的概念,它屬于應用,但我們有時候不想讓某些參數被其他Servlet應用,僅僅想在自己的Servlet中被共享,這時候就需要把它保存在ServletConfig中,換句話說,從【一個Servlet】來看,ServletConfig是它的全局,而從一個【Servlet集合(Web應用)】來看,ServletContext是它的全局。 個人觀點,僅供參考。

是這樣的,假設現在要運行一個應用。 1.Tomcat啟動→讀入xml文件 2.容器為這個應用建立一個新的ServletContext實例,應用的所有部分都共享這個上下文 3.如果xml中有定義上下文的初始參數,則容器首先創建初始參數實例(應該就像一個Bean一樣) 4.把初始化參數實例的引用交給ServletContext 5.容器建立一個新的servlet,這時建立一個新的ServletConfig對象,并且為這個ServletConfig對象提供一個ServletContext的引用 6.調用servlet的init()方法初始化servlet 由第5步可以看出,每個servlet中都有一個上下文(ServletContext)的引用,因此,servlet都知道這個上下文。 但是ServletContext的實例比Servlet先誕生,所以ServletContext誕生的時候并不知道Servlet的存在。 在java EE API文檔中 ServlectContext擁有獲得Servlet的方法 例如:Servlet getServlet(String name) 但是,這一類的方法已經廢棄了,從注釋中可以看出,原先的這些方法返回的值是null,也就是無法獲得servlet 因此,ServlectContext誕生的時候并不知道Servlet的存在,它的誕生僅僅是因為容器誕生了~~ 我個人感覺,ServletContext中并沒有Servlet的信息,相反,每個Servlet中都持有ServletContext的引用。

在HeadFirstjsp中有一個說法我覺得不錯,ServletContext就像一塊布告欄,你可以往上貼布告,走過的人都可以看到它!

servlet上下文,是針對servletconfig而提出來的,因為容器在配置文件中提取的初始化參數保存在了servletconfig對象中,但由于初始化參數只針對某個具體的servlet而言,別的servlet是訪問不到這個參數的,所以為了提供一個可以供全體servlet使用的對象--這個對象也可以從配置文件中獲取參數,哪個老外就弄出了一個servletcontext對象,并把它稱為上下文或者應用上下文,其實就這么簡單。只不過大家現在所聽到的所看到的上下文被形態化了,經典話了而已。追起本質,還是很好理解的。

ServletContext 與application的異同 

相同:其實servletContext和application 是一樣的,就相當于一個類創建了兩個不同名稱的變量。在 

      servlet中ServletContext就是application對象。大家只要打開jsp編譯過后生成的Servlet中的

      _jspService()方法就可以看到如下的聲明:            ServletContextapplication = null;

            application= pageContext.getServletContext(); 

不同:兩者的區別就是application用在jsp中,servletContext用在servlet中。application和page  

      requestsession 都是JSP中的內置對象,在后臺用ServletContext存儲的屬性數據可以用  

      application對象獲得。   

而且application的作用域是整個Tomcat啟動的過程。例如:ServletContext.setAttribute("username",username);則在JSP網頁中可以使用  application.getAttribute("username");

來得到這個用戶名。

轉載自

http://tianxingzhe.blog.51cto.com/3390077/1659348/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晴隆县| 阿克苏市| 措美县| 集贤县| 海原县| 醴陵市| 南城县| 大洼县| 康平县| 玛纳斯县| 正阳县| 准格尔旗| 金平| 东阿县| 广宗县| 巢湖市| 定边县| 凉城县| 若尔盖县| 民乐县| 丰台区| 黄浦区| 宣汉县| 楚雄市| 华蓥市| 宜州市| 武穴市| 苍山县| 辽中县| 芦山县| 舒城县| 贵定县| 玉门市| 太湖县| 织金县| 鹿泉市| 长岭县| 铜陵市| 防城港市| 莱西市| 菏泽市|