Posted on 2007-03-04 23:08
云自无心水自闲 阅读(1583)
评论(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页面。