我剛開始研究一個struts2項目。我已經看到struts中的動作的力量。 我只想知道幾件事當用戶通過搜索引擎請求jsp時,調用struts2動作
1.當客戶端通過搜索引擎請求頁面時,服務器是否通過映射jsp的動作來引導請求? 2.如果上述問題的答案是否定的,我們如何設置渲染頁面所需的動作類中的所有bean屬性? 3.如果上述問題的答案不是如何保持數據機密性,因爲所有攔截器都是圍繞動作構建的
我剛開始研究一個struts2項目。我已經看到struts中的動作的力量。 我只想知道幾件事當用戶通過搜索引擎請求jsp時,調用struts2動作
1.當客戶端通過搜索引擎請求頁面時,服務器是否通過映射jsp的動作來引導請求? 2.如果上述問題的答案是否定的,我們如何設置渲染頁面所需的動作類中的所有bean屬性? 3.如果上述問題的答案不是如何保持數據機密性,因爲所有攔截器都是圍繞動作構建的
如果您的JSP頁面可公開訪問並且用戶直接訪問它們(例如,來自搜索引擎或書籤),那麼不會調用您的操作。
您的JSP應放置在WEB-INF目錄下(例如,/ WEB-INF/jsp),以便用戶無法直接訪問它們。在Struts2中(任何其他MVC框架),JSP只是視圖層的模板,不應該直接訪問。
有在回答其中一個答案有一些評論在Problem with moving JSPs under WEB-INF directory是加強這樣的:
我不知道關於支柱,但隨着春天,它是公認的做法把JSP中的WEB -INF,然後你的視圖代碼訪問受保護的JSP。這也阻止了對JSP的直接HTTP訪問,所以你可以獲得更好的訪問控制。 - jkf
同樣適用於Struts。將JSP放入WEB-INF文件夾被認爲是一種好的做法。無論如何,我已經得到了我的答案。 - 工匠
Struts的工作方式是它有一個調度程序servlet,用於讀取傳入請求的路徑並確定哪個動作發送給他們,然後這個動作執行並轉發給一個jsp。因此,動作是否被調用取決於客戶端所點擊的URL是什麼,如果它是一個映射到struts中的動作的url,那麼它將調用動作,否則不會。
因此,如何確保如果搜索引擎正在將某人引導至我的jsp,那麼只能通過我的操作才這樣做? – SonOfTheEARTh 2010-11-24 14:57:29
但是,如果jsps應該保存在web-inf中,爲什麼書籍會顯示在web-inf之外(我已經看到struts2在行動中保持它,並且在我的大學教師中,而教學則保持不變)。那麼我們如何訪問它們(是否像http:// ip:port/proj-name/WEB_INF/xyz.jsp或http:// ip:port/proj-name/xyz.jsp) – SonOfTheEARTh 2010-11-24 15:32:58