LoginServlet.logout 的限制

JF的LoginServlet.logout方法


private void logout(HttpServletRequest request, HttpServletResponse response){
Debug.logVerbose("[JdonFramework]logout, session.invalidate ", module);
try {
request.getSession().invalidate();
CookieUtil.deleteAllCookie(request, response);
String logoutUrl = this.getInitParameter(logout_param);
Debug.logVerbose(
"[JdonFramework]delete all cookie, push logout jsp=" + logoutUrl, module);
//request.getRequestDispatcher(logoutUrl).forward(request, response);
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + logoutUrl));
} catch (IOException e) {
Debug.logError(e, module);
}

response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + logoutUrl));这个行代码意味着用户退出登录后的页面只有一个选择(就是在web.xml里配置的/account/logout.jsp)

我不知道这种设计如何来满足企业应用的复杂情况,如果项目基于JF来做那么用户在退出登录后很难实现动态定位到别的资源 如果要想实现必须修改JF的代码(修改JF的代码是最方便的途径,但这也是糟糕做法)这么小的需求都去更改底层类库代码 真不知道JF能做些什么 查看了JF 5.5也是如此 可能banq还陶醉在JiveJdon的成功上能吧

还有不知道jivejdon什么时候加入了author GeXinying 的设计 说实话问题不少 很失望 不知道 banq在加入被人设计时有没有做过全面的测试

[该贴被taishanglaojun于2008-12-20 18:30修改过]

一定要记住JF最大特点是全面可配置 全面可替换,没有人是圣贤,想到未来所有全面解决方案

因为LoginServlet是在你的web.xml中配置的,你可以自己实现一个LoginServlet,然后在你的web.xml配置你自己的LoginServlet就可以。当然,如果你愿意分享你的LoginServlet给大家更好,我会在将来加入JF。

就是修改JF也是很方便的,在container.xml中配置替换就可以。JF是全面可替换修改的,包括核心,放心去改吧。

这里我演绎展开讨论一下,不针对楼主:

其实我们的思维已经被暴力框架侵犯习惯了,养成被动接受框架安排,受人摆布的思维,在EJB/Spring等框架使用下,我们从来没有念头说:这个框架某个功能可能不适合我当前情况,我去改造它,而是厚道地想:也许我没有全面掌握EJB/Spring,也许可以通过某个弯路绕着走,这就是被侵入习惯了的思维。

而这个思维又促成本来很轻量只解决某个领域的框架走向全面JavaEE API库,框架和库是有本质区别的,是用户的依赖和不断要求迫使框架变成重量,为什么我说Spring复杂,很重,和EJB一样重了(正象它今天开始和EJB融合,如果不是一丘之貉何来融合?),以为EJB3换了IOC 注射和annotation就轻量了,这个认识我个人认为非常可笑。

当你被侵犯惯了,你开始接受这种侵入直至你的思维接受影响;如果它再给你更多花样和功能,你觉得挺好挺享用!

没有一个裤子适合所有尺寸,没有一个框架适合所有应用场景,不要象依赖微软那样依赖某一个框架,这和你依赖数据库的思维有什么分别,当你依赖它,它就成为单点,就成为盒子BOX,就会开始限制你的自由,这也是我一定要数据库死亡的原因,你不打破心理脐带,就没有更大更高视野。

所以,我做的框架从来不会让你产生依赖,看到中国水墨了吗?寥寥几笔和那么多空白就产生多少艺术遐想,软件是艺术的,框架就是那寥寥数笔,更多空白需要你来填补,这就是中国软件框架的独特思想。

[该贴被banq于2008-12-21 14:22修改过]

目前对JF还是比较感觉性的认识 还需要近一步了解