学习日记V0.9.0.4正式推出!

  学习日记V0.9.0.4正式推出!下载地址:http://www.learndiary.com/download/learndiaryV0.9.0.4.war。在learndiaryV0.9.0.3的基础上,有如下主要的变化:

  1)、完善网站的动态导航系统;

  2)、根据功能拆分原来的数据库存取对象,但这不是一个真正的DAO方案;

  3)、初步改善登录模式;

  4)、数据库改为utf-8编码,你可以用任意语言书写自己的学习日记;

  5)、修复了一些bug。

  最新的源代码在我们开发社区的CVS库中随时更新(地址:http://learndiary.tigris.org/source/browse/learndiary/old)。欢迎有志于开源事业的Java爱好者加入到我们的开发队伍。

  我们将本着应用为先,用户至上的原则继续向前发展,为最终实现建设一个具有普遍适用性的开源网络学习交流平台而努力。

关于未来学习日记建立自己框架的设想

  看jive论坛,突然想到为了实现学习日记的宗旨,我们应该拥有一个服务于这一个宗旨的框架的支持。

  1、立足于网络学习领域;

  2、内核的网络性,像linux区别于传统windows;

  3、开放体系;

  4、名字嘛,想起一个:LearnMan。

  笑看斗转星移,岁月如歌,浩瀚宇宙,如一撮清波在我手中荡漾。

  框架很深奥吗?我不过认为那只是指甲里无意中发现的一粒亮尘。

尝试把数据库连接字符串改为characterEncoding=GBk

   学习日记不支持繁体,尝试把characterEncoding=GB2312改为GBK,繁体字倒是能显示了。但是,不知道为什么,java里的String.repalceAll()不能把繁体正文里面的\r\n替换成我需要的<br>,也就是说,它根本就没有发现里面有回车换行符。所以,这时,页面不能正确的换行。这个问题不是最紧要的,先把它记在这里,以后解决。

忘记密码怎么办?

  取回密码的功能是必须的。

  我的知识范围内目前有下面几种方式:

  1、简单的把未加密的密码用邮件发给用户;

  2、用密码提示问题,回答正确后可以重置加密的密码;

  3、把重设密码的随机码用邮件发给用户,再由用户重设加密的密码。像jive3那样;

  4、重置加密后的密码,然后把重置后的密码发给用户。(这种方法不行,因为只要知道了别人的用户名,就可以重置密码,并把重置后的密码发给并不知情的本人。)

  综合上述的情况,用提示问题的方法因为已经建站了,数据库没有这个字段;再加上不好;拟使用上面第3种方法,觉得比较合理。

  但是,我需要学习一下,因为我不知道延迟有效期的方法。jive3的做法是3天如用户不重设密码,自动无效。

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

  前两天,为了解决游客进入系统需要登录的问题,在几乎每个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" />),不知是为什么?

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

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

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

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

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