当前位置:首页 > 生活点滴 > 正文内容

《校园半月谈》项目总结

canca18年前 (2007-08-27)生活点滴454

CAnca

《校园半月谈》项目运用了StrutsHibernateAjax框架。Struts是一个实现MVC模式2的框架。本项目使用Struts作为系统的核心架构。为了实现页面完全无刷新,使用了能与Struts完美结合的Ajax框架Ajaxanywhere。数据库层使用应用广泛的Hibernate框架。

以下对各框架作简单的解释。

StrutsStruts是一个基于Sun J2EE平台的MVC框架,主要是采用ServletJSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。StrutsServletJSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。

HibernateHibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。

AjaxanywhereAjaxAnywhere, 是能够把任何一套现存的JSP组件转换成AJAX感知组件而不需要复杂的JavaScript编码.它利用标签把Web页面简单地划分成几个区域,然后使用AjaxAnywhere来刷新那些需要被更新地区域.  AjaxAnywhere 并不需要改变基本得代码. 相对来说, 比较容易实现. 并且并没有把你的程序和AJAX绑定到一起. 即使是一些不支持AJAX的浏览器,也还可以正常地工作。

项目的开发周期比预计长了,预计2周完成,结果花了4周才完成。造成项目不能预期完成的原因有:

(1)       前台界面未能预期完成。使AJAX框架无法结合界面开发。

(2)       SVN同步开发工具不熟。使项目迟迟未能同步开发。

(3)       对在线编辑器FCKeditor的使用问题和中文支持问题花了部分时间。

(4)       机子运行速度慢,有时死机。

(5)       对各框架的熟练程度不够高。

(6)       增加了Word文档上传方式代替在线编辑方式,,并与前台完美结合。

(7)       增加后台文件管理。

在项目中,我们遇到了很多棘手的问题:

(1)       FCKeditor新建目录,中文目录变乱码。

(2)       HTML内容提取,HTML标签乱套。

(3)       Word文件上传如何转HTML

(4)       如何获取FCKeditor的文件上传路径。

(5)       Struts的分页优化。

……

问题不单单只有上面五条。上面五条只是本人印象最深刻而已。为了解决上面的问题,我搜索了相关的信息。

问题(1FCKeditor新建目录,中文变乱码。我在搜索引擎里逛了半天都没有找到相关的信息。最后,我只好自己去解决这个问题。首先,我要找出乱码出现的地方。是出现在前台还是出现在后台的。由frmcreatefolder.html源码开始入手。最后经过分析源码的运行流程发现在提交到Servlet时文件名已经是乱码的了。接着我修改HTMLmeta元素,将“”改成“”。经过测试,发现刚才的乱码已经变成正常的中文了。但Servlet接收后却变成乱码。最后,我不得不修改JAR包了。由于FCKeditor是个开源项目,提供了源码。于是,我就查看ConnectorServlet.java文件。修改了相关的内容编译好,最后覆盖原版的ConnectorServlet.class。乱码解决了。

问题(2HTML内容提取,HTML标签乱套。这个问题,可谓是最棘手的了。网上相关的信息少之又少。开始,我一直使用这个解决方案的:把HTML内容中的所有HTML标签全部过滤掉,然后提取部分文本。这个方法效果还可以。但如果文章全部都是图片标签。那么,最后显示的效果岂不是空白?这样就不够完美了。最后,我决定要提取HTML代码,不过滤了。利用递归的方法将未闭合标签添加上,将不完整的标记补完整。但这个工作没有几千行代码是很难实现的。如果HTML标记是不规范的,最后实现的效果还是那么糟糕。想着想,正当我要放弃的时候。却在某某的blog里看到这么一篇文章:《从HTML中攫取你所需的信息》里面介绍了一个开源项目的使用:Html parser。最后经过研究html parser项目,发现该项目完全可以实现我想要的效果。HTML文章摘要功能终于可以实现了。

问题(3Word文件上传如何转HTML。呵呵,这个问题,在网上到处都是。我只需要将他们的代码整理一下就可以引用到自己的项目中去了。不过,如何在前台漂亮的显示。还是要花点心思的。

问题(4)如何获取FCKeditor的文件上传路径。由于,多次修改FCKeditor.jar包,所以遇到这个问题我想也不想就修改了该包的SimpleUploaderServlet.java文件了。在相应的位置添加application.setAttribute(“uploadpath”,uploadpath);呵呵,结果成功。文件上传管理可以弄了。

问题(5Struts的分页优化。经过在网上阅读相关的Struts分页技术。发觉,其效率不高。所以特制了一个分页类。

以上的五个问题,就这样解决了。其实还有些前台问题:JavaScript的跨浏览器问题。不过这个问题,不用多久就解决了。

这个项目给我的体会很多。在这个项目中,我学到了很多东西。JavaScriptAjaxStruts等知识都有所提高。有一样东西,是不能在书本上学到的。那就是经验。在项目中,遇到的问题,是在书本上体会不到的。项目完成后我发觉自己看对了一本书《Dom Scripting》。JavascriptDom的跨浏览器控制方法。在这本书都可以学到。

在项目开发中,错误的调试是多么的重要。遇到错误,应立即作断点,观察其运行时各变量值。在HTML文章内容提取时,我就是多了一个if语句而未能得到最终结果。那段代码是这样的:

if (node instanceof Text)

if (node instanceof Text)

{

………

}

 

就是多了一个if (node instanceof Text)弄了我一个晚上。呵呵,这或许是我的粗心大意吧!!但,如果我弄了断点,不用一分钟,我就能检查出错误的地方了。由此可知,断点的使用是何其重要啊。

要使JavaScript能够跨浏览器,其实并不难。只要你的javascript的代码符合W3C规范,那么大都会跨浏览器的了。

如何快速使用开源项目?其实开源项目是很快可以上手的。只要到官方网站上走走,看看他们给的例子。读一下代码,看一下API理解一下就可以了。

项目结束了,但学习还未结束,还有很多新知识,还未上手呢!为了成为一名出色的网站设计师,我会不断努力!

 

CAnca

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/563.html

标签: 生活点滴
分享给朋友:

“《校园半月谈》项目总结” 的相关文章

从QQ空间到这里来了

搬家了,从QQ空间搬到这里来了...其实呢!我一早就想搬了,就是舍不得那些日志,须然没什么价值。可是自己生活的点滴记录。好了~~~ 现在搬了。呵呵。这个家挺不错。   在这里弄个连接:http://user.qzone.qq.com/248440382/  有空,我还会去看看呢!...

今天的收获

今天的收获

    今天我在网上不停地找孙鑫老师的书。第一本是《Java Web开发详解》第二本是《VC++深入理解》~~~呵呵,第一本始终找不到,不过到学校图书馆里借了。哈哈~~~ 还好。那里有借。嘻嘻~~~~ 兴奋...至于第二本,下了一整天了,刚刚也下载了。呵呵~~~电子书也...

用错地方了

     今晚同个网友编左一个类似病毒架物体~~~晕~~~ 果个病毒架公司名仲写住CAnca Software Office架~~~唔记得改啊~~ 悲哀啊~~~      下次唔编果D野了...将知识用错地方...

二月初二

原来今日系二月初二啊~~~ 东坑架二月初二啊~~~ 有三年无去了...毕业后一定要去玩玩~~~...

累了

不知道,最近总是很累,难道我已经丧失了目标。难道我已经开始放弃自己的爱好——软件.是什么事令到我如此疲倦啊?唉~~~ 希望明天,会有个好的状态...今晚睡觉前为自己找找原因。再这样下去...梦想就会破碎了...不可以的~~~~~~~~~~~~~~~~~~~...

观《夏洛的网》有感

看了这部电影,我感动了,哭了。这部电影让我学会了蜘蛛永不言败、脚踏实地的精神。蜘蛛为了他的朋友能够看到生命中的第一场雪,一直在帮助它,直到生命终结。蜘蛛是聪明的。虽然样子并不美,但它的行动,它谦逊的精神,打动农场中因为它丑陋而讨厌它的每一只动物。其实,人也是一样,心肠好,就是最漂亮的。我们应向蜘蛛学...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。