tomcat的一些知識點

2021-07-15 03:44:54 字數 1508 閱讀 9444

首先,來張圖簡單說明下:

接下來,說乙個安全目錄的問題。

web專案的的webroot資料夾下,有個web-inf資料夾,它對外遮蔽,不允許通過路徑名直接訪問,如果非要訪問,則需在web.xml中配置servlet,servlet的乙個好處就是名字可以隨便取,對外隱藏了路徑,提高了安全性,所以一般不允許外面隨便訪問的資源一般都放在web-inf資料夾中。

接下來說下重定向和**的知識點。

如上圖所示:重定向:瀏覽器共發了兩次請求,第一向tomcat請求資源,返回資源位址,第二次再發一次請求,返回所請求的資源。值得注意的是,在第二次的請求中伺服器拿不到第一次請求的request物件,request資訊會丟失。

重定向在servlet重的核心**如下:

//重定向--法1

string path = "/helloweb/jsps/res.jsp";

//重定向---法2

重定向resp.setheader("location", path);

**:瀏覽器共發一次請求,servlet將請求資源(request,response)**給目標資源,這樣不會造成資訊的丟失。在servlet中核心**如下:

//**

string path = "/jsps/res.jsp";

requestdispatcher rd = req.getrequestdispatcher(path);

rd.forward(req, resp);

最後說下servlet生命週期的問題servlet最初被訪問時,會執行構造方法init()方法和service()方法一次。以後再訪問時,構造方法和init()方法將不再執行,只執行service方法。關閉tomcat伺服器是,destory()方法將被執行。即從始至終訪問的是同乙個servlet物件。

值得注意的是。加入同乙個servlet類在web.xml中配了多個路徑,當訪問不同路徑名時,servlet物件不同。

還有個小知識點值得一提,以上述方式只有servlet第一次被訪問時,servlet物件才會被建立出來放入池中。但實際應用中,可能遇到這樣的需求,要求在tomcat伺服器啟動時就建立出servlet物件,並將資源載入記憶體(如敏感詞過濾,要求伺服器一啟動就將資料庫的敏感詞載入記憶體),關於這個,可以配置web.xml。

核心示例**如下:

twoservlet-name>

cn.hncu.servlets.firstservletservlet-class>

servlet>

注發布為新增的核心**,大於0的數字時表示啟動順序。數值越小,越先啟動。

一些知識點

字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...

一些知識點

1.vector是在堆上還是棧上?在堆上.2.我們發現指標有一些 似是而非 的特徵 1 指標消亡了,並不表示它所指的記憶體會被自動釋放。比如函式中的指標是區域性變數,如果它指向了堆上,而自己出了函式後消亡了,但它所指向的記憶體還是存在的,導致了記憶體洩漏.2 記憶體被釋放了,並不表示指標會消亡或者成...

一些知識點

1 sln 解決方案檔案 csproj 專案檔案 cs 原始檔 解決方案包含多個專案,每個專案都是乙個程式。config 配置檔案 3 const int a 1 const 定義乙個量為常量,運算中用到當常量使用,不可以再重新賦值。4 型別轉換。1 隱式轉換。從值型別轉換成引用型別。從引用型別轉換...