简易Blog项目总结

*   项目要求:实现登陆注册、博客列表(分页)、对博客发布评论(分页)、最新更新博客                         列表、博客搜索(条件:标题[,时间])、登陆后管理自己的博客(增删改)和管理自         己发布的评论(增删)。

*
*   总历时:约4天时间。 老师有给模版,出于一种莫名的心情决定自己弄一个,自己布   局,用户如何操作完全是按照自己的想法进行设计。
*   @author
         Java03李伟明
*/  


         HTML页面:

         仔细回想一下这几天,因为之前完全没有做过网站,对于怎么给网站打框架,纠结了老半天,花了大约半天时间大概地框出了一个框架,唔。。。当时还觉得挺满意,然后换FF一打开…立马崩溃,整个布局完全变形…

         考虑了几分钟,决定把css重新写过。偶然试验出有一个position:absolute 属性,顿时灵光一闪… 然后把所有的div、table全部整成绝对位置。各种margin对齐,高、宽调整半个小时之后,框架完成。

         可是看着还是不怎么好看,怎么办呢?给css一顿乱调,总算找出了比较顺眼的颜色搭配;背景图呢?Banner的logo呢?底部的logo?难道不放?当然不允许,又是一顿乱百度,再加上各种图文处理软件(之前完全是不会用的水平)什么FireWork、PhotoShop、CorelDRAW、AI一顿乱整 T_T (其实后来同学还是有说页面好难看!
!!!!)

         第一步完成!

         Ajax到底是好还是不好?

         由于刚学Ajax,出于类似小孩子拿到新玩具的心情,决定这个项目全部使用Ajax处理请求,结果就是项目做完之后,整个项目要求的操作我全部在一个窗口里完成,不论你要进行什么操作绝对不会跳转网页。当初还因为注册带了上传图片而无法利用Ajax来处理(和个人水平有关),为此我还纠结了很久,才决定放过它,让它跳转了一个页面。

         于是我在写jsp的时候以把用户憋在一个页面为最终目标。所以打开项目的js文件,里面的$.post()方法出现了很多次…其实在今天项目完成的时候我仔细琢磨,这么干肯定是不好…

         Ajax
的优点是实现局部刷新页面,带来更好用户体验,缺点就是它使用大量javascript,而各个浏览器对js的支持又不一样,所以在使用Ajax的时候要考虑浏览器的兼容性,而且Ajax是局部刷新,浏览器的后退按钮无法对页面进行回退。怎样把Ajax用在合适的地方,用户需要某些地方实现局部刷新,但如果全部都局部刷新又会让用户产生错觉:‘我浏览的这个网页怎么就一个页面,太弱了’,这其中的平衡点确实很难把握。

         jQuery-UI

         jQuery-UI是jQuery的扩展插件(可以这么称呼么?),里面就是一些UI小工具,做的很漂亮,那天老师在课堂上一提到这玩意我就留意了,一下课就用手机下载了。

         出于一种莫名的心情,在这个项目里我也大量使用了这个东西,结果就是页面里小窗口到处乱弹…虽然在自己电脑上运行很流畅(我其实老满意自己写的这个项目了T_T,毕竟是第一次做稍微复杂一些网站啊。),结果同学就给我说,这个用户体验很不好…而且还会卡啊…低版本浏览器上效果也很不好…

         确实如此,做网站都以向下兼容为目标,向上兼容算哪门子兼容…

         FF和IE浏览器谁是大爷?我该伺候谁

         电脑上有俩浏览器FireFox和IE10,两者的差别还是很大的…

         同学也经常开玩笑的说FF是专业的、程序员都用这个浏览器之类的…经过这项目我确实发现FF很专业,对javascript语法要求更严格,记得有一次写了这么一句:window.location("XXXXX"); 这语句在IE上可以正常运行,FF里点击却是没有反应,当时我纠结了很久,后来偶然试出来另一种写法window.location = ("XXXXX");  Orz 这两句代码在我看来差别不大啊,但是FF就认为它是错误的;还有FF里面对css的支持和IE也不一样,导致在IE里排列整齐的那些div一用FF浏览就惨不忍睹。

         Java实体类和数据表的对应

         项目开始的时候,没怎么考虑java代码这边,还是按照之前的老套路,MVC(自己理解的MVC,还不规范)之前也写了几次,但是我忘了这次项目涉及到的是3个数据表,经常会有多表联查的情况出现,结果按照以前的套路写的那些Entity,到实现dao的时候才发现字段和sql查询出的字段不匹配,最后只能又写了几个实体类。

         吃一堑长一智把,以后在工作开始之前要考虑好会用到什么样的sql语句,执行一次sql语句查询到的字段应该和Entity的字段对应。或者说Entity的编写不要放在首位,在需要用的时候再去写,可以避免发生类似错误。

         项目中的相对、绝对路径

         项目中的一些个相对路径、绝对路径一定要处理好,否则会出现做出来的网站只能在本机上玩的惨剧,要分清楚:request.getRequestDispatcher("xxx")里面要填带/不带项目名称的绝对路径;response.sendRedirector("xxx")里面要填带/ 带项目名称的绝对路径;jsp页面的所有标签src=xxx;里面填带/带项目名称的绝对路径;用include包含的页面填的路径填不带/的相对路径;(我目前的处理方式,如有不对敬请拍砖)

         End

         总的来说这个项目写下来之后吃了很多亏,同时也受益良多:
         1.
再也不要花那么多时间去扣什么静态页面了,就奔着白底黑字就OK;
         2.
Ajax不是恰到好处我才不用;
         3.
jQuery-ui?除了datepicker其他还是少用好了;
         4.
css或者javascript最好多用几个浏览器试试,兼容性确实是一个相当大的问题,                   写到项目结束我才发现我写的这博客在FF上竟然无法登陆,其他功能都正常                           就是不让登陆,给我郁闷的…;
         5.
关于老师给的模版,偶然和同学聊天的时候,我才发觉其实应该按照老师的模版                           去写的,因为以后工作之后不可能是一个项目从上到下都是你一个人去干的。                       所以必须要习惯,习惯往别人给的框架里面填代码;
         6.
还有代码的复用性,唉…其实项目里有挺多的长得挺像的哥们(代码),我竟然                    没法让他们在一起,挺伤心的…
         7.
!!为啥用反射调用本类中方法(把方法都写一个servlet里),老是会出一些看不明                     白的异常呢?虽然运行结果正常,但是看着红字很不爽啊,所以现在用一长串的if              else if代替了。
         8.
!!为啥在自己电脑上浏览网页都挺正常,一到别人的浏览器就会报一些莫名奇妙的          错误啊,完全是找不着根源,一打开网页就弹框框,还谈什么用户体验啊?

         End2(上面的结局太伤感了,来个轻快点的安慰一下自己)

         来看看从这个项目里都获得了啥呢:
         1.
首先HTML功力必须是涨了很多,都会用css+div布局了;
         2.
图片处理功力必须是涨了很多,都会玩ps了,还有以前闻所未闻的AI;
         3.
简易版的MVC必须是又熟练了很多,打代码速度明显提升;
         4.
仅靠自己(和百度)从前到后做出了一个小小网站,成就感必须有很多;
         5.
头一次使用java对数据库进行多表联查,复习了很久没用的sql语句,期间还无意发                   现了原来oracle和mysql语句的有些方法竟然是不一样的,我一直以为是一样的,           导致在mysql里面TO_CHAR  TO_DATE ,to了半天…
         6.
有些事情,不动手去做,永远不会知道自己能不能行。刚一拿到项目的时候感觉无                      从下手,但其实动手写起来之后才知道不是无从下手,而是想法太多不知道该用哪              一个。所以即使觉得无从下手也要先下手,“边开枪边瞄准”。
                  (纯属安慰,路漫漫兮,继续努力!)

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(33) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值