导航改进未能如期完成--很抱歉

自接到任务以后,我做了认真的分析和设计。

但是迫于能力有限,--我接触jsp还刚刚到jstl,

我曾于前几天和jw和admin联系反映过我的情况,得到admin的热情回复。

虽然这几天我已经尽力了,但是对于没能完成任务,影响到了整个项目的进度,我很遗憾,向各位成员道歉。

如果有好的人选,我愿意让贤。

订阅邮件功能的工作进度

编写代码已经完成,现正在完善文挡和写解决问题的过程的日记.

按大兴的建议,参照大富翁论坛。设计情况大概是这样:进入"显示目标内容"前先判断用户是否订阅了这个目标,没订就显示"订阅邮件",否则显示"取消邮件"。用户提交日记后,日记存入数据库后显示一个页面"订阅这个目标的用户有***",而发送邮件由后台处理,发送邮件的确比较费时间。为了试验申请了N个邮箱....

呵呵,今晚睡觉

改进导航能力初步构思。

在参考了admin和jw的意见之后,对改进导航能力有初步构思如下:

以下内容为添加的部分:

1,在具体某一日记中,添加两个链接“本目标的上一篇日记”和“本目标的下一篇日记”。

2,在具体某个“显示目标内容”中,添加“查看该目标日记”和“返回目标列”。

以下内容为修改的部分:

1,从目标列打开“显示目标内容”,由原来的在新浏览器窗口改为在当前窗口打开

这只是在原先基础上的小修小补,一方面是因为这是探索性的试探,另一方面也有我自身能力的原因

各位有什么看法都来说说。

改进导航--此导航非彼导航

23日收到jw的邮件,获悉自己的任务如下:

        4)改善系统的导航功能:目前的系统导航能力太差,以www.javaresearch.org为样板改善系统的导航功能;

功能完成者:poemco 时间7天(3天设计)

 我在做分析的时候,有几点疑惑 :

          1,什么是导航?

          2,改善导航意味着我可以做什么改动?“以www.javaresearch.org为样板”意味着我不能做什么?

对于这两个问题,我也有自己的看法,但是为避免理解偏差,和各位沟通一下,

         1,导航是指页面的跳转,链接是其实现手段。导航不是简单的后退。

               我认为网站资源(页面)是一个层次关系,比如在“您的目标”的页面中,我看以看到“进行中的目标”,“已完成的目标”,“已退出的目标”。然后我在“进行中的目标”页面中,我可以看到“精读《jsp2.0技术手册》”和“学习日记.......”这两个目标。那么我在子层次页面中可以点击按钮返回到上级层次中,这是上级层次和子层次间的导航,如果我在某个目标下查看某一篇日记,那么我也可以不必返回到上级层次-目标,就可以通过点击链接,看到下一篇或上一篇日记,这是同层次间的导航。

         2,对于第二个问题,也是我对自己权限的疑问。

               比如,按照我的构想,当用户登陆以后,在第一个页面,他应该可以看到“您的目标”,“所有目标”,“控制面板”三个栏目。如果这样的话,我需要把给我写信,帐号管理等归在新创建的“控制面板”去。但是这样的话,我怕整个项目会乱套了。

 

增加订阅邮件设计方案

参考了大兴的意见

http://www.learndiary.com/disDiaryContentAction.do?goalID=33

http://www.learndiary.com/disDiaryContentAction.do?goalID=67

增加订阅邮件的功能分析设计如下:

(1)把订阅的链接放在“显示目标内容” 这个页面上,功能为设计两个:"订阅目标" "退订目标"

(2)保存订阅信息: 在数据库中单独建一个表(名为usermailgoal)保存“用户ID---目标ID”的订阅关系,涉及到的属性还有订阅的时间,如果用户退订了,则在数据库中删除这条记录;

(3)用户提交日记:用户提交日记后,一方面把日记存入数据库,另一方面则向订阅了对应目标的用户发出电子邮件;过程应该是这样的: 以目标ID为关键搜索usermailgoal表,搜索到用户ID,再根据用户ID得到对应的邮件地址,生成发送邮件地址列表,这样就可以把邮件 发出去了;然后,把发送情况告知写日记的用户,再按原来的流程回到日记列表页面;

第(3)个是大兴的意见,我个人的设计是这样的: 用户提交日记后,把日记存入数据库后就回到日记列表页面,发出电子邮件则由后台线程来处理,而不是等到邮件发出去了才回到日记列表页面,因为如果要发送很多,例如十几到几十封邮件(即使是只有几封)都是很费时的,这样用户会觉得系统得很慢,另外发送邮件过程对于用户来讲透明为好,如果想知道给哪些人发了邮件,则可通过"检索"看哪些用户订阅了这个目标.发送情况如有错误则写入错误日志文件.  

请大家多提意见.

我对程序程序设计队当前5个目标模块的一点

    我认为,现阶段开发这5个目标有下列目的:完善学习日记开发小组的开发交流平台,增进开发小组成员

之间的协作能力,熟悉学习日记模型的现有运作方式,减轻新版学习日记实施阶段的负担。

    我对这5个目标的一些思考,仅作参考:

**********************************************

    1、解决learndiaryV0.9的重复提交问题:现有的学习日记不能完全防止用户无意的和熟练者的故意重复

提交,只要用户清除了程序中的“havePosted”提交标志,重复提交的缺口就打开了。效率的考虑,不能用查

数据库记录的方式解决。我在网上找到一篇相关资料仅供参考(我还没有弄懂):

“http://www.softhouse.com.cn/html/200410/2004102516370600001323.html”

**************************************

  

2、添加开发小组内部成员查看成员资料功能:新的目标,还没有思考过。

**************************************

3、改善系统的登录方式:

    我的一点思路:

    可以设置cookie在用户机器上保存密码,用户可以选择记住密码,下次访问不必重新输入密码。而且,输

入一个url可以直接以自己的帐号进入。即在页面上部显示用户名和发帖数。

    没有登录的用户输入url也可以直接进入指定的页面查看内容,只不过在页面上部显示登录提示框。当用户登录后,就在相

同的位置显示登录欢迎信息和用户的发帖数等等。

    可以参照www.delphibbs.com的登录方式实现。

我原先的一点思考(但是基本上还是封闭的作法,不可取,可以参考一下其中的一部分):

http://www.learndiary.com/disDiaryContentAction.do?goalID=73

*************************************

4、改善系统的导航功能:

    关于保持访问路径的方法,我想了一点方法,仅供参考:用一个LinkedList对象保存访问路径字符串,其

中的每一个元素是当前路径的字符串,在LinkedList中通过添加元素、查找元素、删除元素可以实现路径的跳

转和回溯。

   

****************************************

5、增加订阅邮件的功能:

我在先前的一点思考:

http://www.learndiary.com/disDiaryContentAction.do?goalID=33

http://www.learndiary.com/disDiaryContentAction.do?goalID=67

我找到的一点资料:

http://blog.csdn.net/bromon/archive/2004/06/22/22645.aspx

另外一点想法:

保存邮件的集合可以用Set,剔除一个人多个帐号而形成的重复邮件地址;

邮件发送成功后,可以返回报告给哪些人发了邮件;

使用smtp验证。   

*********************************************

以上的资料仅供参考,有的方法正确性有待验证。

为了大家交流方便,请大家尽量有详细的注释。能形成文档的东西尽量形成文档。

登录方式的改动步骤!

1.按大兴的包结构建立com.learndiary.website包,把原文件到了进去。资源文件放在了该包下。

2。struts-config.xml中改为<message-resources parameter="com.learndiary.website.application"/>

3.把index.jsp另存为login.jsp。index.jsp中内容全部改动。

4。struts-config.xml中改为

     <action   path="/logoutAction"  type="com.learndiary.website.action.account.LogoutAction">

     <forward name="logout" path="/login.jsp" />