清除登录身份验证中的冗余代码

  前两天,为了解决游客进入系统需要登录的问题,在几乎每个Action前都加了自动游客登录的代码。可能是昏了头吧,没有想到很多模块游客是不能进入的,比如提交目标、日记、评论、和全部管理员的模块。

  于是,今天又一个一个的把这些不当的多余代码删除。

  看来,编码前的思考还是太少了点。

已经解决了登录后返回原页面的问题

  思路:用request中的方法保存URL,存在session中,在loginAction中forward到一个loginSuccess.jsp,在这个页面中取得保存在session中的URL,用重定向标记重定向到原来的页面。这样,返回原来的页面并刷新。

  另外,我发现用javascript的延迟跳转(<meta http-equiv="Refresh" content="0; URL=loginActionindexAction.do">)没有用jsp的重定向快(<logic:redirect page="/indexAction.do" />),不知是为什么?

学习日记向您征集学习日记logo创意并请教1

朋友:

  您好。一切都还好吗?我是学习日记的admin。

  现在有两个事情打搅您:

  1、学习日记向您征集学习日记logo创意:

  学习日记创办到还没有一个代表我们形象的logo,请把你的想法和创意告诉我们,或者回复在学习日记网站的下列帖子的回复中:http://www.learndiary.com/disDiaryContentAction.do?goalID=1215(向广大网友征集学习日记logo创意,ps:学习日记的登录模式已经初步改变,不必登录即可查看帖子。)或在留言板中留言(游客身份可以留言)。如果可能的话,你能为我们制作一个你想像中的学习日记logo,我们将感激不尽(请发往邮箱:webmaster@learndiary.com)。

  我们的口号是:学习到永远!!!我们致力于以JAVA技术构建一个普遍适用的开源网络学习交流平台。

  2、请教1个问题:

  1)怎样在游客登录系统成功后,回到并刷新他前的页面?

  比如:我现在在不登录的情况直接输入url:http://www.learndiary.com/disDiaryContentAction.do?goalID=1215查看这个帖子,然后,我点击页面上部的“请登录”链接:http://www.learndiary.com/toLoginAction.do  ,然后我在出现的登录窗口输入我的用户名和密码并成功登录后,请问:我怎么回到并刷新原页面:http://www.learndiary.com/disDiaryContentAction.do?goalID=1215 ?学习日记的最新源码见我们的开发者社区的CVS库中的old目录。

  我们现在已经添加了导航系统,对数据存取层做了一点拆分,初步改变了登录模式。接下来,进一步改变登录模式。。。

  在我们快速完成了一些有关用户使用的必要的改变后,根据情况,我们会启动新系统的全新设计。

今天修复了导航系统的一些BUG

  像页面中找不到应该由ACTION提供的参数、删除日记出错、编辑、提交、填写查询操作中操作非法后,回到原页面提示错误会丢掉request中的参数(解决方法:在session中再保存一次重复的参数,但不知有没有更好的办法?)等问题。

  提交到CVS库,并把最新的程序上传空间试运行。

  现在空间的程序最大的改变就是拆分了那个失败的LearnDiaryDB.java。不知道对空间速度的提高有没有用。还有,我考虑把导航字符串等字符串作为一个参数传给页面是不是不好,是否应该只把特征参数传入页面,再由页面处理得到整个字符串。这样,可以加大页面布局的灵活性。以后,到了程序界面制作的时候,这肯定是个问题要碰到的。

  作为一个程序业余爱好者,真希望能够得到专业人士的指点。

改写DAO层步骤

见开发社区的:issue 5:modify DAO tier

The DAO tier of "learndiary" is a bad design,difficult to understand,large

size,there are too many methods in a class,it affects the performance of our

program.It must be modified,although our entire system will be redesign in the

furture,but,for giving user a better experience of visiting our website,it

needs a quick fix.

为了改善网站的性能,减少内存占用,第一步是将LearnDiaryDB.java按对象和功能拆分开。

接下来...,再说。

parameter的使用

  在导航系统的编码中,在parameter的使用上走了一点弯路,记之以备忘。

  1、不用在request中检查参数是否存在,可以直接把参数值写入url,如果这个参数为null,那么它就以“null”字符串写入url,不会影响程序的正常使用。这可以偷点懒。但是,为了url短点,把无效的参数检测一下,在url中剔除它为最好。

String searchDiaryIDStr = request.getParameter("searchDiaryID");

firstPageStr =

" <a href=\""

+ url

+ ";jsessionid="

+ sessionID

+ "?searchDiaryID=" + searchDiaryIDStr + "&pageNum="

+ firstPage

+ "&naviStr="

+ naviStr

+ "\">首页</a>";

  2、同样,在*.jsp文件中也可以这样偷点懒,request中没有这个参数它会处理成空字符串,如:

  <html-el:link action="disDiaryContentAction.do?searchDiaryID=${param['searchDiaryID']}&goalID=${aArticleInfo.articleID}&naviStr=${requestScope['naviStr']}" target="diaDisDiary}">

  在这里,就用不着用<logic:present></logic:present>或<logic:notPresent></logic:notPresent>来检测“searchDiaryID”在request中是否存在。