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