前两天,为了解决游客进入系统需要登录的问题,在几乎每个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目录。
我们现在已经添加了导航系统,对数据存取层做了一点拆分,初步改变了登录模式。接下来,进一步改变登录模式。。。
在我们快速完成了一些有关用户使用的必要的改变后,根据情况,我们会启动新系统的全新设计。
今天对登录系统作了一个基于简单的改变
1、输入url可以直接进入网站了;
2、进入网站不需要经过登录窗口了。
改善学习日记的登录模式
由于学习日记的登录模式,将学习日记做成了一个封闭的系统。现在,我们要对外开放,必须改变登录模式。准备采用不登录也能查看帖子和把登录窗口移到每个网页的上部,做到随时都可以登录和退出。
今天修复了导航系统的一些BUG
像页面中找不到应该由ACTION提供的参数、删除日记出错、编辑、提交、填写查询操作中操作非法后,回到原页面提示错误会丢掉request中的参数(解决方法:在session中再保存一次重复的参数,但不知有没有更好的办法?)等问题。
提交到CVS库,并把最新的程序上传空间试运行。
现在空间的程序最大的改变就是拆分了那个失败的LearnDiaryDB.java。不知道对空间速度的提高有没有用。还有,我考虑把导航字符串等字符串作为一个参数传给页面是不是不好,是否应该只把特征参数传入页面,再由页面处理得到整个字符串。这样,可以加大页面布局的灵活性。以后,到了程序界面制作的时候,这肯定是个问题要碰到的。
作为一个程序业余爱好者,真希望能够得到专业人士的指点。
把LearnDiaryDB.java分成了几个小文件
对程序的使用和理解有所帮助,但不是一个真正的DAO方案。已经提交到cvs库了。
改写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按对象和功能拆分开。
接下来...,再说。
完成导航系统
导航系统的所有需求已经实现。经过测试和反馈后,这个问题在开发社区的issue tracker 系统中将被标记为“已解决”(resolved issue)。
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中是否存在。