第一篇:Java项目个人文档
Java项目个人文档
我的信息:姓名:袁光辉学号:20102430239专业:信工计科2班
项目名称:郑州大学教师评价系统
项目成员:组长:杨心盼 ,组员:尹长昕,徐强,袁光辉,杨腾飞 我的工作:前期工作中我积极参与讨论了本项目中关于教评系统的学生页面,教师页面和管理员页面并发表了一些自己的意见,例如就学生页面而言,我们讨论了学生登录页面的设计,以及学生登陆上系统后应该看到的内容:自己的信息,学期信息,每学期的课程名和教师姓名。更重要的就是评教的主页面的设计问题,它包括基本的问题的设计和留言板的设计,就这些方面我都给了一些我自己的意见,可能给我们后续的工作带来了一些帮助。而对于教师页面的设计,我参与讨论了关于怎样来设计一个指标来评判每个教师的得分高低,最初我们打算用平均分柱状图来直观的描述,后来均衡利弊还是放弃了,最后我们用了单独的页面显示它,留言板我们最初的构想是全部显示,但是后来综合考虑了一下这种方法的可行性,首先我们综合分析学生留言的特点,我们发现学生留言绝大部分都是对于教师的感谢和祝福,普遍篇幅不多,但是学生数却人数多,于是我们采用分页显示和全部显示学生留言的方式。就页面的设计我则是在网上细心挑选了几张适合做页面背景的图片供做页面设计的背景图使用。然后,根据我们项目所需要的一些具体的java技术,我认真的翻阅了关于图书馆的一些相关书籍来跟进我们的项目,当然我们都提前对于javaEE中关于servlet和javascript的内容作了认真的学习,熟悉了servlet和javascript的基本功能和实现的原理,以及他们的联系,重点学习了关于网页中数据传送的内容,并从图
书馆借了关于dreamscript的书籍,为后面进一步的学习和项目打下了一些基础。
在项目的实际工作中组长主要给我分配了用mysql来设计数据库方面的工作,数据库是java项目中很重要的一个部分,它包括数据库的设计以及数据库中信息的统计以及数据库与网页的交互等组成,在杨心盼组长的带领下我积极参与数据库的前期分析:需要建的表和怎样建表才能让数据库发挥更大的作用。后期我则是参与到了学生数据的录入工作和数据库的连接细节,期间我们积极讨论实现细节,尽可能的使我们的项目更完美。例如,就学生的表来说,我和徐强,杨腾飞设计了学生表应该具有的一些基本的属性:学生号,学生姓名,出生年月,入学时间,通过这些属性,我们可以大致描述区分一个学生。教师这张表我与徐强,杨腾飞通过教师号,教师姓名,教的课程来描述教师。课程这张表我们则是通过课程标号,课程名和学分来加以描述。最后我们建立了学生-课程的表来使学生和教师发生联系,供数据库的查询使用,最后就是网页中对于数据库的访问问题和数据传输。在表建立好之后,我跟徐强,杨腾飞就开始了关于数据的录入问题,首先我对于300名左右的学生姓名,学号,出生年月,入学年份进行了录入工作,最后对于课程信息的课程名,课程标号也进行了细致的录入工作。在我们全体组员的共同努力下,我们的项目取得了成功,我也是在项目中受益匪浅啊,有经验也有教训。
个人总结:团队是一个整体,每个人都是不可候缺一部分,在这次java项目中我对于我做的工作并不满意,工作做的毛毛草草,一方面说明了自己能力的不够,另一方面说明了自己还不够努力,在为我敲响了警钟,在以后的学习中,我不能只偏重于理论,更要在实践中了解真知,以期在以后合作中发挥自己最大的作用。教训呢,就是发现自己由于偏重于理论,换句话说就是受应试思维的影
响,导致实践能力很欠缺。例如本次java中关于数据库的设计,就是偏重理论,导致当发生错误时竟不知道怎么排除错误,这也是以往编程不足的影响吧,计算机是实践性很强的一门课程,我必须改变以往的思维,才能有所进步有所收获。在java项目中往往达不到预期,这也是我今后要努力的方向。
经验就是由于参与本次项目,我深刻的了解到团队的重要性,当你身处一个团队时,你会发现每位组员都是那么的不可或缺,只有团队人共同努力,才会真正创造一个好的东西,当然我也了解到java项目的建立流程,从网页设计到后台数据库的设计以及他们呢之间的数据传输等以及各部分是怎样实现的有了一个更加深刻的认识。另一方面,我也从中获得了编程的一些要点,以及出错时关于错误检查等方面的经验,为以后做好了准备,总而言之我在本次项目中学到了网页方面和数据库方面的很多知识。
第二篇:java个人工作总结
java个人工作总结
导语:我是一名程序员,在过去的一年里,软件研发部团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。
作为一个软件开发工程师,我有幸成为北京超图一员,应聘为公司的java软件工程师。入任职以来,在部门领导的带领下,自己感觉无论学习、技术、生活等方面都有很大的提升。
我是4月末来到公司的,来到公司的初期主要是对工程部PDA运维系统进行了解,并对PDA以后可能用到的一些技术进行研究,而后对现有的项目进行修改。系统包括3个主要功能模块,一个次要模块,主要模块有工单管理、消息管理和系统升级。
PDA上线之前主要在有线的5个站点做实施工作,第一次做实施,以为只是简单的教用户怎么用就可以了,但是真正做起来才知道,针对不同的用户需要用不同的角度去讲解,特别是年龄大的,要多讲几遍才行。
PDA上线以后工作主要集中在PDA的维护和修改上,由于距离上次实施时间较长,所以又进行了一次实施。每个站点使用的时间不同,花费在每个站点上的维护和实施时间较长,在实施和维护期间每个站点都提出了不同的问题,针对不同的问题修改了很长时间,其中修改最多的模块主要集中于工单管理模块和系统升级模块。
系统在所有站点都开始使用以后主要针对站点提出的不同的问题进行解决和系统的改进,经过改进的系统很稳定,问题基本出现在由于信号不好的原因导致升级失败,由于卡停机导致系统不能正常登录。还有几次是因为网络原因导致系统不能使用。
PDA运维项目稳定后主要做了些boos系统中的一些功能,数据库数据的批量转移,百万条数据的批量的转移功能。
宽带系统的的咨询查询,根据用户地址和时间进行查询,修改宽带大客户ATM资料查询功能 BOOS系统网上营业厅缴费的遗漏查询 网上营业厅二期产品卡消费 修改了付费频道发票打印功能 全网稽查中主工单的打印。
1、将学习的springsecurity整合到我们自己搭建的ssh框架,进一步完善框架。
2、利用搭建的ssh框架,开发一套oa系统平台。
3、做好襄樊、鄂州家政网络服务中心的维护工作。
4、希望公司能够大量拿下湖北省其他市的家政网络服务中心,继续开发和实施湖北省其他市的家政网络服务中心。
5、继续学习新技术,努力提高自己的个人能力。为以后能够更好,更顺利的工作奠定基础。
6、希望通过自己的进步和努力,能为公司的发展做出自己最大的贡献,体现出自己的最大价值。
完成116114网站首页登录及注册、公告模块、红段子短信发送、地区二级联动、及一些公共代码的实现,在这个项目中学习了新的知识Freemarker及Ibatis,熟悉了JQuery的使用,并对统一框架有了一定的了解。并在规定时间内完成了开发任务。
联通116114门户网站主要实现红段子的定制与包月。红段子内容包括短信和彩信。是由用户注册成为会员,自行在网上发布红段子,经审核后发布,再由个人用户到网站上包月或点播定制的一个业务。红段子门户网站建设目的,就是为了满足和实现红段子发布,定制流程
视频黄页个人定制:个人用户通过搜索引擎方式查询视频黄页,不注册也可以进行查询搜索,查询时用户可选择地区,行业,然后输入关键字进行搜索。搜索出结果后,个人用户可点击视频黄页,进行预览或定制或包月
这段时间主要熟悉质检系统的业务及需求,学习一些测试的基础知识,如单元测试、集成测试、压力测试、性能测试等,并能使用自动测试工具QTP进行一些重复的需要手动测试的功能,使用LoadRunner模拟多个用户实施并发负载及实时性能监测。熟悉web应用在websphere及weblogic服务器上的部署。在测试的这段时间,对质检系统的所有的功能都有了一定的了解,并发现了许多系统以前存在的问题,项目提交测试部之后,没有太多功能上的问题。也为后期参与质检项目开发作好了准备。
但0504版本与其他版本依赖关系比较大,没有测试环境,许多功能没有测试,这个版本出现的问题比较多。所以在以后工作中需要注意这些问题,及时向上级反馈工作中的问题。
主要负责计划考评(人工事后,自动事后,轮次)的相关需求、质检标准等功能的实现及其他需求的测试。学习了struts1的相关知识,对质检系统业务有了进一步了解。这个版本的开发都在规定时间内完成了任务,版本质量也没有太大的问题。
主要完成彩信模块所有的功能的实现,主要用到了JQuery、DWR、IBATIS、SPRING、BOSS验证、UMA及Webservice等技术
1.在这半年多的时间里,学习了很多新的知识,都是以前没有接触过的,可能刚工作的时候有些浮躁,想有新的任务,又害怕做不好,但是最后都能如期的完成领导交付的任务,并学到新的技术,所以,事后会觉得没有什么是做不好的,只要自己动手去做,克服急躁情绪,积极、细致地的对待每一项任务。
2.测试工作,刚做测试工作的时候,大家都不太愿意去做,一是觉得自己不会这技术,二是觉得自己的初忠是搞开发这一块,刚出来就做测试,也没有什么经验,总觉得不合适,但做过一段时间后,我深刻感受到开发的做测试的一个好处(当然是没有接触项目前),根据项目需求,可以很快的熟悉项目的业务,不再局限于做开发的只熟悉某一个模块的功能,而不了解其他模块的实现。并且,在以后做开发的时候自己会考虑更全面一些,思维也拓展更开一些。
3.在工作中需要不断的学习,通过项目不断提高自己的各项技能,做到脚踏实地,不怕多做事、做小事,在点滴实践中完善提高自己。
4.在工作中可能会遇到一些纠结的小问题,自己可能花很多时间也解决不了,如果多问问同事可能很快就可以解决问题,所以,不用爱面子,多向同事请教,但也不是有问题就问。
5.这半年工作时间里,发现和解决问题的能力,个人的技术都有了很大的提高,在项目中遇到问题,不会再像刚开始不知道从何下手,不知道如何去定位一个问题,而现在都能较快的处理在工作中遇到的问题。
1.技术水平有待提高。自身的能力提高了,做事的效率也会高一些,不然,许多技术都是现学现用。会浪费许多工作的时间,可能延迟项目进度。并且刚开始只考虑到如何实现,并未考虑到性能和一些设计层面上的问题。
2.工作缺乏计划,未及时总结当天完成的任务及学到的新的知识。如果当天不制定计划,可能会这件事做会,那件事做会,没有目的性,没有时间紧迫感,浪费许多时间,也不明确工作重点,造成事倍功半的效果。工作不及时总结,可能一段时间内不知道自己做了些什么,学到了些什么,自身能力到底提升了多少。
1.制定详细的学习计划,系统学习一些专业的知识。工作更加细心、仔细,加强责任心,不断提高自己分析问题和解决问题的能力。
2.在数据库方面有所突破。
3.多看源码,弄明白用到技术的原理,让自己软件开发的思想更全面一些。
4.在工作中要及时向项目经理反应自己的工作情况,包括已完成的任务及工作中存在的问题,提高工作的主动性。
5.注重团队合作,养成总结与反思的习惯,并有意识地提炼日常工作成果,整理成文档,以便以后遇到类似问题能够很快解决问题。
根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈:
以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。
首先,面向对象语言的收获。对于当前编程的主流思想是对象,任何事物都可以用对象来表示。以前理解这些话很费解都是从表面上理解,没有从深入的体会,通过这次项目的深入,不管是数据还是外部一些条件我们都可以抽象成对象,都可以用对象来表示,具体可以用语言中的类方等。如此,c#如此java也同样如此。
其次,具备独立完成知识方面的能力。以前没有做过vb的东西,加上这次深入的做,这次涉及到的领域也非常广,常用的重要的都有涉及,并且还补充xml,javascript实际操作中空白的部分。通过这一年的开发,在.net 方面我能胜任这方面的工作,能独立完成这方面的工作。
再次,c#方面存在一些不足。LocALhOST通过c#这次软件的开发,也发现自己的不足,如基础知识掌握不牢,缺乏编程整体思想。这些都是需要在工作中完善和改进的。
数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了oracel与 access数据库,这是我最大的收获。
优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种sql语句。还掌握了一些关于数据库优化sql语句优化的方法,能进行一些简单的优化。
缺点:数据是一门比较先进的技术,并不是你会写一些sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。
上面的成功与收获,除了自身努力外,以及公司的支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队总结也就是我在这个团队中的收获。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。
拼搏:公司给的每一个任务不管它多难,如果工作没有完成我们会晚上加班,也要尽可能的完成当天的工作。如果工作实在忙,为了赶进度我们放弃周末休息时间也要尽可能的使项目提前。
创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。
交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。
通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。
技术上:不管从语言上还是做事的逻辑上都得到了很大的的提高。现在在软件小组里面自己能独立完成一部分工作,承担自己的责任。
第三篇:Java个人学习心得
呵呵,当年我也是靠着自学走上java程序员这条路的,就给你写几点我的体会吧。
首先java完全可以在半年之内学通,只要你确实用心学,这点完全不必担心。
如果你智商属于普通人并且完全没有编程的基础,例如c,c++,或者其他编程语言(我指的是亲手编写一个完整的程序,helloworld或者剪切字符串不算)我强烈不推荐你看书,不然将浪费你大量的入门时间,甚至走许多弯路(比如做j2ee的话swing与swt是基本不用会的,多线程也只要会点基础即可),现在java的视频教程满天飞,完全可以选一个讲解清晰,条理明确的java入门视频,这里我推荐马士兵的j2se视频教程,以前我看的也是这个,虽然现在看来里面有点小错,但不失为一个看起来愉快,学起来轻松的入门级教程,毕竟刚开始的时候还是应该以培养兴趣为主。
入了门之后就要选方向j2me或j2ee,这两种你可以自己上百度搜下,其实都是满有前途的,以后牛了双修也未尝不可。
我个人学的是j2ee的内容,j2ee说白了就是做网页,这时候你要从先从java里脱身出来,学些跟网页有关的东西:
1.html:很简单的东西不是太笨的话半天左右即可搞定
2.js:易学难精,想速度找工作不必花太多时间,随便买本javascript书略读并备查 推荐:JavaScript高级程序设计;JavaScript权威指南
3.数据库:如果没有基础的话,建议多花时间,至少一个月,开始建议用mysql,然后是oracle,然后是sqlserver,这段时间最关键的就是sql语言的编写,关系到你今后笔试的成败,一定要自己多练,多在网上找笔试题做。
5.xml 就是一种封装数据的格式,没啥好学的,练习一下怎么用dom4j或者jdom读写xml即可,可以直接去网上下有注释的例子程序来看看,比看视频看书快多了。
6.jsp,servlet,tomcat: 这段时间说白了就是用jsp来做个网站,学习方法也很多种,可以看书比如java web 开发详解,我一同学就是看这本书看会的。
也可以继续看视频比如尚学堂的jsp,servlet。
7.学再多不实践也是不行的,这时候可以自己搞个小项目了,可以参考尚学堂shopping视频,bbs视频,不过这两个项目练练手可以,别往简历上写,太丢脸了。这其中还有很多小工具,例如jxl的excel读写,jfreechat的图表生成等等,实在不行进公司再学也行,因为不一定每家公司都用这些东西。
8.开始进入框架时代,框架说白了就是加速开发的工具,内在原理还是以上的那些东西
主要是3大框架:
mvc框架:struts,struts2,jsf
or映射框架:hibernate,ibatis
业务框架:spring
重量级框架:ejb
每种挑一样学即可,因为大概都差不多,学了一种同类产品可以在3天内搞定
学习方法分两类
1.看视频:时间长,要有耐性,估计全看完要1个半月,基本可以学全开发用的东西,但是对内在原理了解不深。
2.看网上资料,看书:速度因人而已,领悟力强的半个月就能搞定,学的东西还比看视频多,毕竟学到这阶段都有点基础了,可以研究下程度更深的东西,如果自觉不够聪明就别勉强了,说不定3个月还云里雾里。
当年我基本是2种结合,一边利用上无聊课的时间看书,大学这种课应该还不算少,视频如果觉得会了就拉过去。
视频主要是2家,尚学堂的够全面,但不够深入,学起来比较简单。
传知播客够深入,也全面,但是学起来比较难。
9.最后一个,在我面试的经历中几乎必问的东西,AJAX
首先是搞清楚原理,最基础的那段js调用服务器的代码必背,然后是学一个ajax框架,推荐jquery学起来简单,ext备选,用的人多。
10.webservice,ant,gis等等等等。
这些东西笔试面试最多问你做没做过,基本不影响你进公司,以后有机会就在项目中学。
11.面试之前自己做一个拿的出手的项目,不需要太大,4,5张表即可,但一定要够花哨,ssh框架全用上,ajax必用,报表功能必有,面试的时候就拿这项目猛吹,然后源码丢给他,基本就没啥问题了(美工直接上网抄,或者上网找个现成的项目扒光后台全部自己写)。
最后,送你一句话,男儿当自强。
在程序员这行里,能力远远大于学历,你相信你能成功,你就能成功!
第四篇:Java专题 项目经验总结
Java专题 项目经验总结
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法
必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!
关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。JavaSE----基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while----面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super----异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则
----数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator----常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式)
----反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils(apache-commons)
----输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator设计模式与包装流类、对象序列化和反序列化
----多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock Servlet和JSP----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、、HTML与JavaScript----你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法
以上,就是你进一步学习Java所必备的基本知识。特别是一些个专业术语和名词,看到这些名词,如果你像看到亲爹一样亲切,那么说明你对Java的基础知识就很熟悉了。接下来是SSH:
对于初学者来说,这三大框架被赋予了太多神秘的色彩,似乎它们是重中之重的知识!但是对于拥有多年Java开发经验的专业技术人员来说,对于那些Java牛人来说,却对这三大框架不太感冒!难道它们不重要吗?
现在很多企业都在用这三大框架,所以很多企业也把掌握这三大框架作为招聘的必备条件。不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系。这三大框架既可以说很重要,也可以说不重要。
说重要的原因在于:这三大框架对JavaEE开发中所存在的普遍的问题,提供了优美的解决方案,它们蕴含了这个行业中最NB的开发人员的努力和想法,所以,学习这三大框架,你就可以窥探到这些处于技术巅峰的牛人们究竟对一个问题是怎么想的,通过一种什么样的设计思路去解决问题的。所以,对于你来说,你没有太多项目开发的经验,经验是什么?经验就是你知道可能会遇到哪些问题,针对哪个问题可以有哪些解决方法,在某个情景下,哪种解决方法是较好的,哪种方法不太好等等!如果你没做过什么项目,你根本就不会去意识到你可能会遇到哪些问题,而这些问题往往又是非常关键的!解决得不好,会影响到你的程序的稳定性、可扩展性等等!三大框架就给初学者提供了了解你以后可能会遇到哪些问题,以及针对这些问题的解决方案!
当你了解了这三大框架为什么是重要的,那么你也就能理解,为什么这三大框架也可以说是不重要的。如果你曾经开发过很多项目,你碰到了各种各样的问题,凭着你的技术功底,逐个击破了这些问题,在这些人眼里,三大框架(是不是还有N个框架?呵呵)都是浮云!
你属于哪一种人呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非常重要的!而且,由此你也知道了该怎么去学这三大框架。对于三大框架的学习而言,着力点在于给你展示问题,并触发你自己主动的思考,我们鼓励你提出自己的想法,也许你的想法很白痴,但那毕竟是你自己的想法,如果你不知道牛人的想法,那你怎么知道自己的想法是很白痴的呢?在这种思想的碰撞过程中,你就会逐渐提高自己!所以,三大框架学完之后,你不应该只是看到一大堆配置文件,你不应该只是看到了一些Action,一些Service,一些映射文件,你不应该只知道session.save/update/delete,你不应该只是知道struts2中有一堆interceptor,你不应该只是看到一堆jar包„„
如果你只是知道拷贝一堆jar包,定义一系列配置文件之后,SSH三大框架就能够运行起来了,也可以给你干活了,那么,很悲哀的是,你仍然没有掌握三大框架的精粹!请你回答以下问题: Struts2:
为什么每次请求都要创建一个Action对象?
ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题? 为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack?
Struts2是如何实现MVC设计模式的? Spring:
你为什么要用Spring? 请你聊一聊IOC/DI?
什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理? 把spring和hibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only? Hibernate:
请你谈谈你对OR映射的理解?
很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?
为什么Hibernate建议你的实体类实现hashCode和equals方法? Hibernate实体类中的数据库标识与数据库主键之间关系的认识? Hibernate关联映射与数据库外键之间关系的认识?
调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解 调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解
请你聊一下以下名词、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size 配置了lazy=”true”一定会实现懒加载吗?
Hibernate中的“N+1”问题
Hibernate有哪些最佳实践?
以上并非SSH中全部重点的问题,但它们能考察你能否灵活运用SSH框架!如果你能深刻理解这些问题,再配以合适的实战项目训练,你也会逐渐成为牛人!
最后是项目开发能力:
不管你是学Java还是别的技术,你的根本目的在于给客户创造价值!否则,你下大力气学习的东西,随着技术的进步和更新,很快就会过时!所以,技术的核心在于用技术创造有价值的成果!也就是说,客户需要什么,你就要用技术把客户需要的东西给他造出来!一个公司之所以要用各种福利条件极力挽留你,是因为你能够给公司带来极高的利益!那么,你有什么可以给公司利用的呢?公司最看重你的哪方面的能力呢? 做项目需要的能力很多,其中最核心最基础的就是建模能力(现在最主流的就是面向对象建模!)。什么是建模能力呢?
我给大家一个面试题:
一个保险公司的保险卡管理模块:销售人员领取保险卡信息(保险卡数量、卡号、领取日期),然后直接销售给客户,销售完毕后,将保险卡信息录入保险公司系统内部(销售人员信息、购买人信息、购买的保险卡数量、卡号等),客户登录保险公司网站激活保险卡,需要填写(保险卡卡号、激活密码、被保险人信息、受益人信息)
要求就是:如果这个模块交给你来做,你要怎么做?你要解决哪些问题?你可否画个图,给我描述一下你的想法是什么吗?
这只是一个面试题而已,因为只有简单几句话,所以我把它放到这里,让大家感受一下所谓建模要解决什么问题。而业务领域的问题实在是太多了!也许一个几十上百页的需求文档才能把某个业务领域的问题描述清楚,而你的职责就是要把它们实现出来!
某个公司要开发一个考勤管理系统,要求与现有的人力资源系统对接,你是主要的技术负责人,那么,你要做哪些工作呢?
某ERP项目要实现一个排班管理模块,交给你去完成,你如何去完成呢?
不要抱怨项目经理给你的信息太少(只有几句话),不要抱怨客户没有描述清楚他们的需求„„你的价值就在于理顺所有的问题,用各种手段获得你想要的信息,按照一定的思路汇总,并在特定的时间里逐个解决它!
你应该意识到学Java不是一个坦克大战、一个网络飞车、一个CMS、一个DRP、一个OA那么简单,你不要沉迷于那些技术细节(虽然也是有必要的,但不要转牛角尖),不要满足于实现了CRUD式的项目需求(虽然这是基础中的基础),在你的前方,永远有一个目标在那里,需要你去努力追赶!
今后你将面对更加繁杂的需求,你学习项目的唯一目的,就是:学习如何将需求转化为实现,如何对需求进行分析,如何建立概念模型,如何理顺各种概念之间的关系,如何进行设计,如何选择合适的技术来实现你的设计方案,如何对你的实现进行测试,如何解决你所遇到的形形色色的问题(性能、需求变更等)。当你真正到公司里面从事了几年开发之后,你就会同意我的说法!
利用Java找工作,需要的就是项目经验,项目经验就是理解项目开发的基本过程,理解项目的分析方法,理解项目的设计思路,理解项目的实现技巧,理解项目的测试方法,理解项目中各种问题的解决方案!!
第五篇:java项目心得总结
java项目心得总结
篇一:Java应用项目开发总结报告
1、In Action
(1)根据添加信息()来考虑表中的字段,进行建表。使用PD画出ER图。要注意字段的数据类型的确定以及建表要满足三范式,减少数据冗余;
(2)表建好后,根据表中各个字段来建pojo中的属性。要注意属性的数据类型和字段的数据类型要一致;
(3)根据pojo中的属性确定bean的属性,直接拷贝即可,用于页面展示。在bean中,统一使用String类型变量接收前台页面传递的参数;每个HTML表单对应一个bean。HTML表单中的字段和bean中的属性一一对应。
(4)自顶向下,依次定出action、manager、dao。先写出轮廓,跑通整个流程,再写具体实现,一点点累加,便于调试错误;
(5)根据数据实体和具体业务逻辑,使用StarUML画类图,进行OOA和OOD,灵活运用设计模式。
(6)API命名:
CRUD:add,get,update,[list]
严格区分单复数形式,单数表示对象,复数表示对象集合。
对象、属性最好单个单词。
(7)前后台都要校验。
(8)按照资源方式组织数据接口,对前端开发帮助很大。即通过REST来实现资源的增、删、改、查。
(9)软件开发,思路最重要!代码开发多了,思路就有了。
a、一个版本一个版本递增的开发; 每个版本增加一点内容;
b、总结开发思路;第一步怎么做,下一步怎么做?
c、用文档记录开发的思路,即第一个版本开发实现了什么功能以及开发步骤,下一个版本实现了什么功能等等?
d、程序员进行程序开发时,不要仅仅停留在代码,要深入到底层的运行机制,才可以对程序的运行机制有更准备的把握;
(10)网页模板
request到template.jsp文件(此文件假设包括三个部分,即title、banner、body)
web客户——> title
banner———————>include:banner.jsp
body————————>include:showcart.jsp
(11)一步一步的定位。根据结果进行分析。
(12)分页控件
假分页:
基本思想是将所有的数据从数据库中取出,只显示有用的部分。靠的是程序的算法,实际上就是在ResultSet上进行操作。
真分页:(数据库中的一种实现)
任何数据库都会提供分页的函数操作:Oracle、MySQL(limit,即limit 开始的记录, 要查询的行数)、SQL Server(top)
基本思想是在数据库中编写特定的SQL语句。程序中只读取有用的部分,没用的部分不会加载到内存中。
(13)
2、TIPS
(1)、VO就是POJO。
(2)、先做完基本功能,然后对输入的数据进行验证。主方法中代码尽可能少,再考虑代码的可重用性。
(3)、当发现代码中重复地复制/粘贴时,就可以考虑将之形成为一个类进行调用。
(4)、在类的设计中,永远不要去继承一个已经实现好的类,只能继承抽象类或实现接口。
(5)、一个设计良好的类,应重写Object类中的equals()、hashCode()、toString()方法。
(6)、在action层中接收参数,要写健壮,要做空指针处理。
(7)、业务逻辑放到manage层,如if...else...不要放在action层,放在manage层处理。
(8)、dao层要写健壮,传入的是bean或map,返回的是bean或list。
(9)、查询:所有的记录总数以及查询第几页的数据;
(10)、多思考,尝试用不同、多种方法去解决问题。(发散性思维)
(11)、当程序中有0、1这样的数字或字符串出现时,最好用常量代替。常量名很重要,做到见名知意。
(12)、spring针对每一层(action.manager、dao)都有一个配置文件;ibatis有2个配置文件。sqlmap有namespace,每个实体类都对应一个xml配置文件。
(13)、类设计,编写时先完成基本功能的实现,然后再对实现功能的代码结构进行优化。
(14)
2、PS
(1)Java Web开发环境:JDK、IDE、java web服务器
JDK,一般指sun公司发布的JDK,也有其他的JDK,如IBM的JDK、BEA的JRocket等。从Java 5.0开始,Java web技术也称为Java EE。Java EE应用程序的运行需要Java EE类库的支持。
安装好JDK后,设置JAVA_HOME环境变量以及将JDK下的bin目录添加到PATH环境变量。
eclipse需要Java运行环境。
Eclipse WTP是Eclipse官方提供的web开发工具。
Java web服务器在Java EE规范中也叫做容器。
(2)web容器在启动时,从web.xml文件中读取配置信息,装载web应用。
web容器运行时,不会检测web.xml、struts配置文件的更新而重新加载它。
若struts框架不能处理的异常,会把错误抛给web容器。容器会查看web.xml文件中是否配置了元素。若存在,则返回元素的子元素指定的错误页面。否则直接将错误抛给用户。
(3)webApp部署好后,启动Tomcat会自动发布webApp。首先是实例化Filter,并调用其init()方法初始化。然后根据的数值(数值为0或正数,数值越小越先加载)来依次加载servlet,并调用其init()方法进行初始化。
若没有为servlet配置属性,则当web应用启动时servlet容器不会加载这个servlet,只有当用户首次访问此servlet时才加载。
(4)
web调试时,一定要服务器以调试模式启动。然后在程序中打断点,通过浏览器访问,这样程序运行到断点处就会暂停运行。
(5)jsp放到WEB-INF文件夹中,可防止外界直接通过URL来访问Jsp页面,此时jsp一定要是servlet或action的后继页面,才可以被访问到。
(6)EL表达式是JSP2.0规范,需要Tomcat支持的。Tomcat6才支持EL表达式。
(7)编码
用户提交的查询数据(即get请求),默认采用的是ISO-8859-1编码。
request.setCharacterEncoding(“utf-8”);//设置request编码方式,即设置使用utf-8来解析请求参数;
response.setCharacterEncoding(“utf-8”);//设置response编码方式
(8)JNDI
JNDI:为某个java对象起一个名字。如为Tomcat中的数据源起一个名字,从而让程序可通过该名字访问该数据源对象。(Tomcat内置了DBCP的数据源实现)
若web应用访问了由servlet容器管理的某个JNDI资源,需要在web.xml中对这个JNDI资源的引用声明,表示资源引用的元素为。
(9)session
servlet容器为HttpSession分配唯一标识符sessionID。servlet容器把sessionID作为cookie保存在客户的浏览器中。若浏览器禁止cookie,servlet容器可重写客户请求的url,把sessionID添加到url信息中。HttpServletResponse接口提供了重写url的方法:encodeURL(url)。
篇二:Java各种开发框架总结
Spring Framework 【Java开源JEE框架】
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。【SpringIDE:Eclipse平台下一个辅助开发插件】.WebWork 【Java开源Web开发框架】
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类), session(会
话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts 【Java开源Web开发框架】
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
Hibernate 【Java开源持久层框架】
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz 【Java开源调度框架】
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。
Velocity 【Java开源模板引擎】
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS 【Java开源持久层框架】
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。
Compiere ERP&CRM 【Java开源ERP与CRM系统】
Compiere ERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。
Roller Weblogger 【Java开源Blog博客】
这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。
Eclipse 【Java开源IDE】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。
XPlanner 【Java开源项目管理】
XPlanner 一个基于Web的XP团队计划和跟踪工具。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。
HSQLDB 【Java开源开源数据库】
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92 标准 SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。
Liferay 【Java开源门户系统】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。主要特点:
.8.提供单一登陆接口,多认证模式(LDAP或SQL);管理员能通过用户界面轻松管理用户,组,角色;用户能可以根据需要定制个性化的portal layout;能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;支持主流的数据库,如PostgreSQL,MySQL;使用了第三放的开源项目,如Hibernate, Lucene, Struts;支持包括中文在内的多种语言;采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java开源门户系统】
Jetspeed是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML.用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息.Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户.即将成为标准化的Java Portlet API 基于模板的布局, 包括JSP和Velocity 通过开放的内容同步技术支持远程XML内容交换 定制默认的主页 使用数据库进行用户认证 内存缓存技术, 加快页面的响应 通过Rich Site Summary技术, 支持同步内容 和Cocoon, WebMacro, Velocity集成.Wireless Markup Language(WML)支持 使用XML格式的配置文件注册portlet.完整的Web Application Archive(WAR)支持 Web应用程序开发的基础设施 可以在本地缓存远程内容 与Avantgo同步 可移植到所有支持JDK1.2和Servlet 2.2的平台 与Turbine模块和服务集成
可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet 使用皮肤技术使得用户可以选择portlet的颜色和显示属性 自定义功能是的管理员可以选择portlet以及定义个人页面的布局 在数据库中存储PSML 通过Jetspeed的安全portlets管理用户, 组,角色和权限 基于角色对访问portlet进行控制
JOnAS 【Java开源应用服务器】
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA、JMS、JMX、JNDI、JAAS、JavaMail。
JFox3.0 【Java开源应用服务器】
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发!如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的。
重新设计的 IoC 微内核,融入 OSGi 模块化思想 设计成嵌入式架构,能够和任何 Java Web Server集成部署 支持 EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件 支持 EJB 发布成Web Service 采用 JOTM(http://jotm.objectweb.org/)提供事务处理,支持两阶段提交(2PC)采用 XAPool(http://forge.objectweb.org/projects/xapool/)提供 XA DataSource,支持智能连接池管理 内置 MVC 框架,实现自动Form Mapping,Validator,Uploading
等
功
能,支
持JSP/Velocity/Freemarker页面引擎,并支持直接在Action中注入EJB 支持多应用模块部署,让中大型应用充分享受模块化开发带来的优势 提供 Manager 管理模块,可以查看和管理各种运行时参数 提供根据 JFox 特色重写的 Petstore 应用模块
[java项目心得总结]