Posted on 2007-03-04 23:08
云自無心水自閑 閱讀(1595)
評論(0) 編輯 收藏 所屬分類:
Java 、
心得體會 、
Appfuse
1、編譯部署成功后,在地址欄中輸入:http://localhost:8080/appfuse,即可看到首頁-登錄頁
2、第一個頁面是login.jsp,此頁面使用include包含了taglibs.jsp和loginForm.jsp
其中taglibs.jsp是一個公共頁面,定義了頁面中使用到的taglibs
而loginForm.jsp則是用戶登錄Form定義的頁面
3、現在會發現一點:此時瀏覽器中顯示的內容比login.jsp的內容要多,包括最上方的語言切換行,下面的標題行,最下文的版本信息行等。
這是因為Appfuse使用了Sitemesh的Decorator。
在WEB-INF目錄下,有兩個Xml文件:sitemesh.xml和decorators.xml
在Web.xml中定義了sitemesh的Filter
在decorators目錄下有default.jsp這個布局文件。
Sitemesh的作用就是對定義的文件進行裝飾。
在Appfuse中,會對所有的文件作為Body安放到default.jsp這個布局文件中。
4、查看login.jsp,發現他的Form的Action是比較奇怪的:j_security_check
這并不是一個真實存在的URL
在security.xml中可以發現,這個是authenticationProcessingFilter的filterProcessesUrl屬性
這就是Spring中使用Acegi安全認證服務,在Appfuse1.9.4中使用的是Acegi的基于表單的身份認證
filterProcessUrll告訴AuthenticationProcessingFilter應該攔截哪個URL
屬性authenticationFailureUrl指定當身份驗證失敗時用戶應該被送往哪里
defaultTargetUrl定義登陸成功時轉向的頁面
5、用戶登錄成功后,轉到defaultTargeUrl所指定的路徑:/ 根路徑
而此路徑的Welcome file是index.jsp, 而index.jsp又redirect到了mainMenum.html
因此會顯示mainMenu.html頁面。