java项目心得总结.docx
《java项目心得总结.docx》由会员分享,可在线阅读,更多相关《java项目心得总结.docx(11页珍藏版)》请在冰点文库上搜索。
java项目心得总结
java项目心得总结
篇一:
Java应用项目开发总结报告
1、InAction
(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开始的记录,要查询的行数)、SQLServer(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)JavaWeb开发环境:
JDK、IDE、javaweb服务器
JDK,一般指sun公司发布的JDK,也有其他的JDK,如IBM的JDK、BEA的JRocket等。
从Java5.0开始,Javaweb技术也称为JavaEE。
JavaEE应用程序的运行需要JavaEE类库的支持。
安装好JDK后,设置JAVA_HOME环境变量以及将JDK下的bin目录添加到PATH环境变量。
eclipse需要Java运行环境。
EclipseWTP是Eclipse官方提供的web开发工具。
Javaweb服务器在JavaEE规范中也叫做容器。
(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各种开发框架总结
SpringFramework【Java开源JEE框架】
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring的架构基础是基于使用JavaBean属性的InversionofControl容器。
然而,这仅仅是完整图景中的一部分:
Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。
Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解决方案。
Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。
Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。
这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。
Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。
【SpringIDE:
Eclipse平台下一个辅助开发插件】.
WebWork【Java开源Web开发框架】
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架。
WebWork目前最新版本是2.1,现在的WebWork2.x前身是RickardOberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。
Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:
前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL–theObjectGraphNotationLanguage),IoC(InversionofControl倒置控制)容器等。
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是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
【StrutsIDE:
用于Struts辅助开发的一个Eclipse插件】
Hibernate【Java开源持久层框架】
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Eclipse平台下的Hibernate辅助开发工具:
【HibernateSynchronizer】【MiddlegenIDE】
Quartz【Java开源调度框架】
Quartz是OpenSymphony开源组织在Jobscheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。
Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。
Jobs可以做成标准的Java组件或EJBs。
Quartz的最新版本为Quartz1.5.0。
Velocity【Java开源模板引擎】
Velocity是一个基于java的模板引擎(templateengine)。
它允许任何人仅仅简单的使用模板语言(templatelanguage)来引用由java代码定义的对象。
当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。
Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。
Velocity也可以为Turbineweb开发架构提供模板服务(templateservice)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
【VeloEclipse:
Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS【Java开源持久层框架】
使用ibatis提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate实现ORM而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL语句,而ibatis则要求开发者编写具体的SQL语句。
相对Hibernate等“全自动”ORM机制而言,ibatis以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。
作为“全自动”ORM实现的一种有益补充,ibatis的出现显得别具意义。
CompiereERP&CRM【Java开源ERP与CRM系统】
CompiereERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。
易于安装、易于实施、易于使用。
只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。
RollerWeblogger【Java开源Blog博客】
这个weblogging设计得比较精巧,源代码是很好的学习资料。
它支持weblogging应有的特性如:
评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSSsyndication,blogroll管理和提供一个XML-RPC接口。
Eclipse【Java开源IDE】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数—4千万美元,而是因为如此巨大的投入所带来的成果:
一个成熟的、精心设计的以及可扩展的体系结构。
XPlanner【Java开源项目管理】
XPlanner一个基于Web的XP团队计划和跟踪工具。
XP独特的开发概念如iteration、userstories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。
XPlanner特点包括:
简单的模型规划,虚拟笔记卡(Virtualnotecards),iterations、userstories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。
HSQLDB【Java开源开源数据库】
HSQLDB(HypersonicSQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。
支持ANSI-92标准SQL语法。
而且他占的空间很小。
大约只有160K,拥有快速的数据库引擎。
Liferay【Java开源门户系统】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了WebServices来支持一些远程信息的获取,使用ApahceLucene实现全文检索功能。
主要特点:
.
8.提供单一登陆接口,多认证模式(LDAP或SQL);管理员能通过用户界面轻松管理用户,组,角色;用户能可以根据需要定制个性化的portallayout;能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;支持主流的数据库,如PostgreSQL,MySQL;使用了第三放的开源项目,如Hibernate,Lucene,Struts;支持包括中文在内的多种语言;采用最先进的技术Java,EJB,JMS,SOAP,XML;
JetSpeed【Java开源门户系统】
Jetspeed是一个开放源代码的企业信息门户(EIP)的实现,使用的技术是Java和XML.用户可以使用浏览器,支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息.Jetspeed扮演着信息集中器的角色,它能够把信息集中起来并且很容易地提供给用户.
即将成为标准化的JavaPortletAPI基于模板的布局,包括JSP和Velocity通过开放的内容同步技术支持远程XML内容交换定制默认的主页使用数据库进行用户认证内存缓存技术,加快页面的响应通过RichSiteSummary技术,支持同步内容和Cocoon,WebMacro,Velocity集成.WirelessMarkupLanguage(WML)支持使用XML格式的配置文件注册portlet.完整的WebApplicationArchive(WAR)支持Web应用程序开发的基础设施可以在本地缓存远程内容与Avantgo同步可移植到所有支持JDK1.2和Servlet2.2的平台与Turbine模块和服务集成
可以根据用户,安装媒体类型和语言的不同设定,产生不同的个性化服务持续化服务使得所由的portlet能够容易的存储每个用户的状态,页面和portlet使用皮肤技术使得用户可以选择portlet的颜色和显示属性自定义功能是的管理员可以选择portlet以及定义个人页面的布局在数据库中存储PSML通过Jetspeed的安全portlets管理用户,组,角色和权限基于角色对访问portlet进行控制
JOnAS【Java开源应用服务器】
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。
整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet2.3和JSP1.2规范。
JOnAS服务器依赖或实现以下的JavaAPI:
JCA、JDBC、JTA、JMS、JMX、JNDI、JAAS、JavaMail。
JFox3.0【Java开源应用服务器】
JFox是OpenSourceJavaEEApplicationServer,致力于提供轻量级的JavaEE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发!
如果您正在寻找一个简单、轻量、高效、完善的JavaEE开发平台,那么JFox正是您需要的。
重新设计的IoC微内核,融入OSGi模块化思想设计成嵌入式架构,能够和任何JavaWebServer集成部署支持EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件支持EJB发布成WebService采用JOTM(http:
//jotm.objectweb.org/)提供事务处理,支持两阶段提交(2PC)采用XAPool(http:
//forge.objectweb.org/projects/xapool/)提供XADataSource,支持智能连接池管理内置MVC框架,实现自动FormMapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker页面引擎,并支持直接在Action中注入EJB支持多应用模块部署,让中大型应用充分享受模块化开发带来的优势提供Manager管理模块,可以查看和管理各种运行时参数提供根据JFox特色重写的Petstore应用模块
[java项目心得总结]