SerVlet-Config(單一servlet參數配置)/ConText(web項目內容)的使用

一:ServletConfig

         用來讀取在web.xml的相應servlet的初始化參數的設置

        當web.xml的servlet配置了<init-param/>

<init-param>
        <param-name>name</param-name>
        <param-value>jack</param-value>
    </init-param>

       我們有三種方式讀取參數:

        1:利用Servlet類對象的getServletConfig拿到ServletConfig對象調用getInitpatrameter("參數名")函數獲取

        (繼承GenericServlet纔有)

        2:利用Servlet類對象本身的getInitpatrameter("參數名")函數獲取

        3:利用Servlet類對象的(getServletConfig拿到ServletConfig對象調用(可不用))getInitpatrameters(")函數獲取所有的初始化參數

              返回一個Enumeration<String>對象。while(e.hasMoreElements())通過迭代器的遍歷方式獲取所有的初始化參數名

              再調用getInitpatrameter("參數名")函數獲取參數值

@Override
	public void init() throws ServletException {
		System.out.println(this.getServletConfig().getInitParameter("name"));
		System.out.println(this.getInitParameter("name"));
		Enumeration<String> en=this.getInitParameterNames();
		while(en.hasMoreElements()){
			System.out.println(this.getInitParameter(en.nextElement()));
		}
	}
二:SrevletContext
       
       這裏保存着整個web項目的內容。

      如配置Context參數:

<context-param>
    <param-name>charset</param-name>
    <param-value>utf-8</param-value>
</context-param>

     獲取方式是需要拿到SetvletContext對象調用getInitParameter("參數名")函數

   拿到SetvletContext對象,我們可以保存一些web項目的共有數據,如訪問量:

   this.getServletContext().setAttribute("訪問量", 100);

 同樣可以設置可以拿到:this.getServletContext().getAttribute("訪問量");注意返回時Object對象

 同樣可以設置初始化參數this.getServletContext().setInitParameter(name, value);


三:servelt的默認路徑

      當web.xml中配置瞭如下映射:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

            那麼當瀏覽器訪問servelt路徑不正確時,將調用該servlet,但是這樣配置可能會屏蔽掉一些項目安全目錄外的可調用資源,如圖片的調用,路徑會當做servlet路徑   

            處 理,匹配爲默認servlet,導致圖片文件無法正常訪問到。

       note: servelt是一個單例,因此對於多線程訪問,成員變量是共享的,對於實時變量要通過函數傳參,否則會發生數據覆蓋


           


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章