程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Servlet的幾個關鍵知識點,servlet幾個關鍵

Servlet的幾個關鍵知識點,servlet幾個關鍵

編輯:JAVA綜合教程

Servlet的幾個關鍵知識點,servlet幾個關鍵


1、ServletConfig 

  ServletConfig是Servlet的配置文件。對應於web.xml中的<servlet></servlet>標簽。ServletConfig是由java提供的一個接口,其實現類是由tomcat提供。

其API有:

String getServletName();//獲取<servlet-name>中的內容
ServletContext getServletContext();//獲取Servlet上下文對象
String getInitParameter(String name)//通過名稱獲取指定初始化參數的值
Enumeration getInitParameterNames()//獲取所有初始化參數的名稱

2、ServletContext 

  一個項目只有一個ServletContext,相當於<web-app></web-app>標簽。可以在不同的Servlet中獲得這個唯一的對象,可以給多個Servlet傳遞數據。tomcat啟動時創建,在tomcat關閉時才銷毀。

  獲取公共初始化參數,為所有的Servlet准備。而<servlet></servlet>中的<init-param></init-param>是為當前Servlet准備的  

<context-param>
    <param-name>name</param-name>
    <param-value>value</param-value>
</context-param>

   獲取資源路徑:  

//把相對路徑變成真實路徑
String path = this.getServletContext().getRealPath("相對路徑");
//獲取資源路徑後,在創建輸出流
InputStream in = this.getServletContext().getResourceAsStream("/index.jsp");
//獲取當前路徑下所有的資源路徑
Set<String> paths = this.getContext().getResourcePaths("/WEB-INF");

 

3、Servlet

  3.1、Servlet與線程安全

    線程安全就是多線程訪問同一段代碼不會產生不同的結果,編寫線程安全的代碼是依靠線程同步。Servlet不是線程安全的,工作效率高。所以不要在Servlet中創建成員變量,創建局部變量即可。如果創建成員變量,那麼它可以是無狀態的。可以創建有狀態的成員,那麼他必須是只讀的。防止一個線程執行讀操作,一個線程執行寫操作。

  3.2、服務器啟動時就創建Servlet

    <load-on-startup>0</load-on-startup> 非負整數,越小執行優先級越高

<servlet>
    <servlet-name></servlet>
    <servlet-class></servlet-clss>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet>
    <servlet-name></servlet>
    <servlet-class></servlet-clss>
    <load-on-startup>1</load-on-startup>
</servlet>

  3.3<url-pattern>

    <url-pattern>是<servlet-mapping>的子元素。用來指定Servlet的訪問路徑。以"/"開頭 

 

 

  

  

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved