国家电力项目思路总结

Day01 项目框架(SSH) 
1、项目介绍 
2、项目框架(SSH) 
第一步:创建数据库 
第二步:创建项目(导入jar包SSH) 
第三步:持久层 
(1)在cn.itheima.domain中创建ElecText.java文件 
(2)在cn.itheima.elec.domain下创建ElecText.java对应的映射文件ElecText.hbm.xml 
(3)在src下创建hibernate.cfg.xml的配置文件 
(4)使用junit在test包中进行测试(导入log4j的配置文件) 
第四步:DAO层 
(1)在cn.itheima.elec.dao中创建2个接口 公用接口和业务接口 
公用接口:ICommonDao 业务接口:IElecTextDao 
(2)在cn.itheima.elec.dao.impl中创建2个接口的实现类 
公用类:CommonDaoImpl(需要继承HibernateDAOSupport,这样可以方便使用HibernateTEMplate对象) 
业务类:ElecTextDaoImpl(需要继承公用类,这样可以使用公用类中的定义的方法) 
(3)在src创建spring的配置文件(beans.xml) 
(4)使用junit完成测试 
第五步:Service层 
(1)在cn.itheima.elec.service中创建接口 
(2)在cn.itheima.elec.service.impl中创建接口的实现类 
(3)使用junit测试 
第六步:控制层(MVC) 
(1)在cn.ieheima.elec.web.action中创建Action(业务Action)类和BaseAction(公用Action) 
Action类:(注意:这里要设置成多例,即@Scope(value=prototry),因为Struts2的Action是多例,多线程) 
BaseAction类(封装模型驱动对象,HttpServletRequest和HttpServletResponse对象): 
(2)在cn.itheima.elec.util包下创建公用类(泛型转换)。 
泛型转换的目的子类传递真实对象模型,在父类中使用泛型转换成真实对象模型。以后util包下封装的就是公用类。 
(3)在src在创建Struts2的配置文件struts.xml 
(4)在web.xml中添加配置 
(5)导入css,script,jsp,images进行测试 
使用system/textAdd.jsp进行测试:页面如图 
3、底层方法封装(CommonDaolmpl) 
4、使用Maven开发系统 
优点:自动从互联网中获取jar包,并实现了一步构建,这里要记住处于联网状态。 
pom.xml的配置 
依赖管理(导入对应的.jar包) 
通过坐标(定位到仓库中的包的位置,并将jar包导入到项目中,如果版本升级,只需要修改坐标即可) 
5、使用SVN版本控制 
优点:使得项目组开发代码统一使用svn服务器进行版本控制 
第一步:要求开发项目的框架上传到svn服务器 
第二步:让项目组的其他成员,从svn服务器上获取代码,并进行开发 
6、java代码的编码规范 
7、需要掌握的知识总结 
重点:SSH框架的代码(Struts2+Spring+Hibernate),底层公用方法的封装。 
了解:maven,svn

Day02 运行监控 
1、项目页面登录框架 
(1)index.jsp(转发到指定包下的页面) 
(2)menu/index.jsp(提供用户名和登录页面) 
(3)menu/home.jsp(页面布局) 
(4)menu/title.jsp(显示上方的标题) 
(5)menu/left.jsp(显示左侧的功能菜单) 
(6)menu/change.jsp(完成框架的改变,其中parent表示调用父页面(home.jsp)中的对象) 
(7)menu/loading.jsp(显示站点运行情况和设备运行情况) 
2、运行监控 
(1)需要的表 
(2)使用DIV标签控制数据的隐藏和显示 
使用操作步骤: 
第一步:添加js和css: 
第二步:jsp的代码,其中使用

标签: 
(3)控制文本域的输入字数(js) 
第一步:在actingIndex.jsp添加 
第二步:添加文本域 
第三步:使用js加载文本域 
(4)弹出窗口(window.open()) 
3:FCK文本编辑器 
新版本:CkEditor+CKFinder 
4:js添加进度条 
应用场景: 
1:文件上传、下载(IO流) 
2:数据的导入、导出(IO流) 
3:大批量数据的增删改查 
4:远程数据访问 
页面效果: 
整合项目: 
详情请见【\技术资料\js浮动框】中的《帮助(运行监控).doc》 
5:js浮动框 
应用场景: 
1:通知系统 
2:公告系统 
3:监控系统(产生监控报告) 
… 
在系统首页使用浮动框窗口。 
页面效果: 
6:highslideJs 
应用场景: 
1:当页面的一个table表格无法显示所有内容的时候,可以使用。 
页面效果: 
点击【查看详细信息】 
整合项目: 
详情请见【\技术资料\highslideJS】中的《帮助.doc》

 

7:需要掌握的知识点总结 
重点:运行监控的开发。 
了解:FCK文本编辑器(包括数据库设计),js进度条,js浮动框,js使用highslideJs

Day03 数据字典 
1:需要的表 
2:hql和sql语句的投影查询 
3:页面使用select进行遍历List 
(1)方案一:使用遍历 
(2)方案二:使用 
4:掌握js的写法(

标签的添加行和删除行) 
5:DOM对象的ajax(封装在pub.js) 
第一步:在dictionaryIndex.jsp中添加: 
第二步:调用js的代码:实现: 
第三步:在pub.js中定义: 
方法一:(Pub.submitActionWithForm) 
方法二:创建ajax引擎(Pub.newXMLHttpRequest) 
方法三:传递表单Form1中的元素作为参数(Pub.getParams2Str) 
方法四:接收服务器端返回的结果(Pub.getReadyStateHandler) 
方法五:将返回的结果dictionaryEdit.jsp,并放置到dictionaryIndex.jsp的Form2中(Pub.handleResponse) 
6:DOM对象去掉空格的方法 
7:实现百分比效果的进度条 
8:需要掌握的知识点总结 
重点:数据字典的在项目中的应用及开发,ajax(DOM)对象的使用 
了解:spring的c3p0,大家只要会配置即可,进度条(百分比)

 

Day04 用户管理 
1:需要的表 
2:项目中配置hibernate一对多的关系 
 一对一端 
(1)ElecUser.java 
(2)ElecUser.hbm.xml 
 多的一端 
(3)ElecUserFile.java 
(4)ElecUserFile.hbm.xml 
3:jquery的ajax实现二级联动 
(1)页面效果: 
(2)操作步骤: 
第一步:引入struts整合json的插件包 
第二步:在struts.xml中定义: 
第三步:页面使用jquery的ajax调用二级联动的js 
第四步:在Action中定义,这里要将返回的List集合放置到栈顶,struts2将其转换成json数据: 
4:jquery的ajax实现登录名的校验 
(1)页面效果: 
(2)操作步骤: 
第一步:引入插件包 
第二步:在struts.xml中定义: 
第三步:页面的写法 
第四步:在Action类的代码中定义:将String类型的message放置到栈顶:例如 
第五步:在Service类的代码中查询message标识的值 
5:正则表达式的使用(js) 
6:文件上传 
多文件上传的要求: 
第一步:在util包下封装一个方法: 
第二步:jsp页面的表单要求: 
并且表单提交: 
第三步:文件上传的要求: 
在VO对象中: 
7:文件下载 
(1)不使用struts2提供的文件下载 
(2)使用struts2提供的文件下载 
第一步:配置struts.xml 
第二步:在模型驱动的对象中,添加InputStream类型的属性,用来存放文件的输入流 
其中属性名称要与struts.xml中定义的inputName的值一致。 
第三步:将查询的文件输入流放置到模型驱动定义的inputStream属性中,用来输出文件。 
第四步:Action类中代码: 
8:使用md5的密码加密,处理用户的密码 
第一步:导入工具类,放置到cn.itcast.elec.util包下 
第二步:在保存用户和更新用户的前添加一个方法(md5Password): 
9:需要掌握的知识点总结 
重点:用户管理开发,熟练使用jquery的ajax完成业务操作,文件的上传和下载 
了解知识:md5的密码加密

Day05 角色管理 
1:用户、角色、权限的设计 
2:需要的表 
3:项目中配置hibernate多对多的关系 
(1)用户和角色的关系:使用hibernate 
(2)角色和权限的关系:不使用hibernate 
创建角色权限关联表 
4:掌握js的写法(页面复选框的用法,控制全选/全不选) 
 页面效果: 
5:多对多级联删除中间表的数据 
效果:的确中间表elec_user_role的数据可以删除,但是角色表中数据也会被删除,这样显然是不合理的。 
由于在ElecUser.hbm.xml中设置:inverse=”true” 
说明,由角色一端负责维护关联关系:也就是说角色可以操作用户,用户不能操作角色。 
目的:删除用户表的同时,需要删除中间表的数据。此时需要修改删除用户的方法。 
6:需要掌握的知识点总结 
重点:角色管理的开发,多和多的关联关系(使用hibernate,不使用hibernate)

Day06 系统登录 
1:struts2的validator校验(后台校验) 
第一步:在Action中定义:如果出现校验问题,使用: 
第二步:在struts.xml中定义: 
第三步:在menu/index.jsp中,定义: 
第五步:修改错误的样式:字体变红;去掉前面的圆圈 
2:hibernate的懒加载问题 
解决方案: 
方案一: 
在Session关闭之前,查询对象关联的集合或者对象,所有在业务层的方法上添加: 
方案二:在Service层的方法中(Session关闭之前),初始化对象关联的集合或者对象 
方案三:在ElecUser.hbm.xml中,添加lazy=”false”,查询用户的同时,立即检索查询用户关联的角色集合: 
方案四:使用spring提供的过滤器OpenSessionInViewFilter,在web容器中添加该过滤器 
3:验证码 
第一步:index.jsp页面: 
第二步:在Action中进行校验,创建LoginUtils类 
4:记住我 
第一步:index.sp页面 
第二步:Action代码的处理,创建LoginUtils类 
第三步:在index.jsp页面中读取Cookie中的数据,jsp中嵌套java代码 
第四步:添加过滤器 
第五步:在web.xml中添加: 
5:jquery的ztree插件的使用(完成动态加载树型结构) 
第一步:在left.jsp中 
第二步:在treeMenu.js中定义: 
第三步:在Action中添加: 
第四步:(hql语句嵌套查询),Service类定义: 
第五步:在struts.xml中添加: 
6:自定义标签 
7:粗颗粒度权限控制(使用过滤器完成) 
第一步:定义一个过滤器: 
第二步:在web容器中添加对应的过滤器: 
8:系统中的异常处理+日志备份(使用struts2的拦截器) 
9:细颗粒权限控制(使用struts2的拦截器) 
10:今天知识点总结 
11:需要掌握的知识点总结 
重点:登录操作,项目中后台校验和前台校验,hibernate的懒加载处理 
了解:验证码,记住我 
必须掌握的分析问题的能力思想: 
例如:粗颗粒权限控制 
异常处理+日志备份 
细颗粒权限控制

Day07 webservice+二级缓存+导出设置 
1:使用webservice发布系统元数据,分公司调用的过程(axis2) 
2:hibernate的二级缓存(cache) 
二级缓存整合项目: 
第一步:导入jar包: 
第二步:在hibernate.cfg.xml中添加配置: 
第三步:在DAO中执行的hql语句的时候,调用setCacheable(true),例如: 
3:sql语句的联合查询 
项目用使用sql语句的联合查询 
4:导出设置 
(1)需要的表 
(2)需求分析 
按照导出字段列表的内容,动态的导出excel文档 
(3)数据库存放的方式 
(4)掌握js的写法(标签的左右移动) 
5:需要掌握的知识点 
重点:导出设置的开发,sql语句联合查询 
了解知识:webservice(axis2) 
二级缓存(ehcache的查询缓存)

Day08 资料图书管理 
1:导入Lucene相关的jar包 
2:lucene原理图 
(1)索引库操作原理 
(2)索引库中存放数据原理 
3:lucene开发原理(数据库与索引库同步) 
4:配置文件 
(1)导入以下3个配置文件,放置到项目的资源路径下(类路径) 
5:索引库基本代码 
(1)导入以下3个文件,放置到项目的util包下 
6:需要掌握的知识点 
先掌握lucene的思想,不用lucene实现看看是什么效果 
在添加lucene的代码(LuceneUtils)试试lucene添加后的现象

Day09 分页+报表 
1:分页 
整合项目步骤: 
第一步:导入2个java文件,放置到util包下 
第二步:导入一个js文件,page.js放置到script包下 
第三步:修改userIndex.jsp的内容: 
(1)添加: 
(2)修改【查询】按钮的连接 
(3)在Form1的表单中添加2个隐藏域 
(4)在Form2的表单中,加载pageUI.jsp,这个jsp页面显示分页的相关信息,添加: 
第四步:将userIndex.jsp的Form2表单的内容,单独提取出来,命名为userList.jsp 
第五步:在struts.xml中添加: 
第六步:在Action类中添加: 
第七步:在Service类中添加: 
第八步:在Dao类中添加: 
2:POI报表(excel文件的导出) 
(1)POI报表整合项目 
第一步:导入jar包: 
第二步:导入java文件(使用poi生成excel报表,放置到输出流中),类放置到util包下 
第三步:在userIndex.jsp中定义: 
(1)添加按钮 
(2)js代码: 
第四步:在Action类中定义: 
第五步:在Service类中定义(构造数据集合): 
第六步:使用struts2方式的导出 
(1)配置struts.xml 
(2)在模型驱动的对象中添加: 
(2)POI报表的几个核心对象 
(3)POI报表(应对面试) 
3:Get请求出现乱码的解决方案 
解决方案: 
 方案一: 
在jsp中的js代码定义: 
在Action类中定义: 
 方案二: 
在jsp中定义: 
在Action类中定义: 
 方案三: 
修改服务器(tomcat)的配置文件 
Server.xml中的配置: 
4:JXL报表(excel文件的导入) 
(1)JXL报表整合项目 
第一步:导入jar包: 
第二步:导入java文件(完成封装),从文件中获取Excel的数据,读取excel的数据,写到集合中,将类放置 到util包下。 
第三步:导入jsp文件,实现文件上传,使用标签 
第四步:在userIndex.jsp中定义: 
第五步:在struts.xml中定义:跳转到导入excel的页面(文件上传) 
第六步:在Action类中定义: 
第七步:在Service类中定义: 
第八步:在Dao类中定义: 
(2)JXL报表的几个核心对象 
(3)JXL报表(应对面试) 
(4)扩展:excel字段实现动态导入 
5:需要掌握的知识点总结 
重点:分页+报表 
了解:报表的导入和导出的设计思想、分页思想

Day10 图形报表与项目开发流程 
1:Jfreechart报表 
属于工厂模式:提供ChartFactory类,由ChartFactory类创建各种图形 
(1)柱状图: 
(2)线状图 
(3)饼图 
2:使用Jfreechart完成整合国家电力系统 
 整合项目的操作步骤: 
第一步:导入jar包 
第二步:导入一个jap的文件,userReport.jsp,跳转到页面后传递生成图片的文件名,用来加载图片: 
第三步:在userIndex.jsp中定义: 
第四步:在Dao中定义:使用聚合函数进行分组统计。 
第五步:封装ChartUtils的工具类,生成各种图形 
第六步:在userReport.jsp中加载: 
3:FCF报表(FusionChartsFree报表) 
4:项目实施流程说明书 
合同控制 
5:技术点总结 
 基本信息 
1:针对自己的基本情况去写 
2:工作年限:可以虚拟(结合自己的年龄),上学的过程中可以参加工作了(2年以上) 
6:附录:项目【技术资料】说明介绍 
目录: 
1:ajax校验 
 jquery的ajax相关用法:项目中用到了jquery的ajax以及jquery对象的相关用法 
 例如:jquery对象ajax的二级联动,jquery对象ajax的数据校验,jquery对象的相关用法 
2:FCK文本编辑器 
 项目中文本编辑器在项目中的用法 
 可以参考:【技术资料\FCK文本编辑器\旧版本】中的《FCKeditor配置说明(电力项目).doc》,以及【技术资料\FCK文本编辑器\最新版本\ckeditor配置资料】中的《CKEditor_CKFinder_整合项目开发.doc》进行配置 
3:JBPM 
 jbpm4.4工作流的相关技术操作 
 可根据视频进行学习,参考【技术资料\JBPM\视频】中的视频教程 
 JBPM的资料大全,附录在【技术资料\JBPM\资料】中,可以根据资料进行项目开发和学习 
 如果想整合项目,大家可以按照【技术资料\JBPM\配置整合】中的《帮助.doc》进行配置 
4:jfreechart 
 jfreechart图形报表(柱状图,饼图,线状图),学习可以参考【技术资料\jfreechart\文档】 
 FusionChartsFree图形报表,学习可以参考【技术资料\jfreechart\炫\文档】 
5:js浮动框 
 项目中开发中,右小角的浮动框提示,参考【\技术资料\js浮动框】中的《帮助.doc》 
6:jxl导入 
 操作excel报表的jxl技术,学习大家可以参考《技术资料\jxl导入\文档》 
7:lucene 
 全文检索功能,项目中资料图纸管理模块的开发 
 学习可以参考【技术资料\lucene\视频】 
 系统可以按照【技术资料\lucene】中的《帮助.doc》进行配置 
8:maven附加 
 使用maven开发项目 
 【技术资料\maven(附加)\电力项目(整合电力项目)】中的《帮助.doc》整合整个项目的jar包(pom.xml) 
 【技术资料\maven(附加)\ssh(整合SSH)】中的pom.xml只整合ssh 
 学习可参考《maven课堂.doc》 
9:md5密码加密 
 【技术资料\md5密码加密】存放md5密码加密的java文件 
10:poi报表 
 存放导出/导入excel报表的技术POI 
 导出文件在【技术资料\poi报表\java】中的ExcelFileGenerator.java 
 导入文件在【技术资料\poi报表\附加:使用poi报表完成excel文件的导入】中的GenerateSqlFromExcel.java,大家可参考《帮助.doc》的配置 
 附加iReport技术,在【技术资料\poi报表\ireport详解】中 
11:spring企业开发调度器(quartz) 
 【技术资料\spring企业开发调度器(quartz)】中存放的时候类似定时器的功能,可以定时或者按照周期执行某个任务,可以参考《spring企业开发调度器.ppt》进行配置, 
 可以查看视频和源码,位置在【技术资料\spring企业开发调度器(quartz)\视频+源码】 
12:svn(附加) 
 svn整合项目,配置可按照【技术资料\svn(附加)】中的《svn.doc》进行配置 
 学习可按照《svn课堂.doc》进行学习 
13:webservice远程技术 
 webservice可以完成2个独立的系统调用数据,我们使用的技术是axis2 
 国家电力系统发布数据字典,其他分公司系统调用,可以参考【技术资料\webservice远程技术\axis的jar包】中的《axis发布webservice(使用eclipse的插件生成服务端和客户端.doc》 
 学习可以参考视频,位置在【技术资料\webservice远程技术\视频】中 
14:ztree树型菜单 
 配置jquery的树型菜单,使用ztree插件 
15:二级缓存 
 配置二级缓存,即查询缓存,解决系统频繁操作数据字典表,性能优化 
16:分页 
 项目中使用ajax完成分页,即2个Form表单的数据交互 
17:过滤器(实现粗颗粒权限控制) 
 过滤器完成粗颗粒的权限控制,可以按照【技术资料\过滤器(实现粗颗粒权限控制)】中的《过滤器实现粗颗粒权限控制 .doc》进行配置 
 如果项目中使用ajax处理session失效,可以参考【技术资料\过滤器(实现粗颗粒权限控制)\附加文档(ajax处理session失效)】中的《session失效,处理ajax请求.doc》 
18:简易代码生成器 
 项目中可以根据创建的持久化类,自动生成Dao类,Service类,Action类以及类中的响应方法 
 可以参考【技术资料\简易代码生成器】中的《使用说明.txt》 
 也可以参考【技术资料\简易代码生成器\程序代码2\test】中的《帮助.txt》 
 附有视频可做调试【技术资料\简易代码生成器\使用视频】 
19:角色(使用hibernate映射多对多的关系) 
 完全使用hibernate完成系统多对多的关联维护,即用户和角色多对多,角色和权限多对多 
 可以参考文件《创建表+初始化数据(多对多).txt》 
 内有源码可以进行调试 
20:进度条 
 项目中实现进度条 
 【技术资料\进度条\进度条(不添加百分比)】,即进度条没有百分比,完全使用js控制,附有视频,可以按照《帮助.doc》进行调试 
 【技术资料\进度条\进度条(百分比)】,即进度条添加百分比,使用ajax配合js进行控制,附有视频,可以按照《帮助.doc》进行调试 
21:屏蔽火狐等浏览器,限制用户使用IE浏览器,去除修改脚本的插件浏览器(附加) 
 【技术资料/屏蔽火狐等浏览器,限制用户使用IE浏览器,去除修改脚本的插件浏览器(附加)】中可以按照《帮助.doc》完成屏蔽浏览器的功能,保证系统使用指定的浏览器调试 
22:项目如何处理异地登录(附加) 
 【技术资料/项目如何处理异地登录(附加)】处理的是异地登陆的操作,即一个用户只能在1台机器操作系统,如果再其它机器登录系统,则要踢掉之前的登录,大家可以参考【技术资料\项目如何处理异地登录(附加)】中《异地登录.doc》,附有视频可做参考 
23:项目在oracle数据库的框架配置(附加) 
 项目框架开发,使用ssh+oracle数据库进行开发,附有开发的源码 
24:验证码+记住我 
 【技术资料\验证码+记住我】添加验证码和记住我功能,可以参考《帮助.txt》进行操作 
25:运行监控中保存长字符串时截取短字符串进行保存(附加) 
 解决运行监控使用FCK文本编辑器之后,使用截取字符串的方式存放长文本字段 
 可以参考【技术资料\运行监控中保存长字符串时截取短字符串进行保存(附加)】中的《帮助.doc》进行配置 
26:自定义标签+struts2标签控制访问链接权限 
 项目中自定义标签的时候,使用权限控制按键和链接的隐藏和显示 
 可以参考【技术资料\自定义标签+struts2标签控制访问链接权限】中的《自定义标签(帮助).doc》 
27:自定义拦截器(实现异常处理+细颗粒权限控制) 
 struts2的自定义拦截器实现异常处理+日志备份,可以参考【技术资料\自定义拦截器(实现异常处理+细颗粒权限控制)\异常处理】中的《struts2的拦截器实现异常处理.doc》,附有视频大家可以查看 
 struts2的自定义拦截器实现细颗粒的权限控制,可以参考【技术资料\自定义拦截器(实现异常处理+细颗粒权限控制)\细颗粒度权限控制】中的《struts2的拦截器实现细颗粒度权限控制.doc》 
28:技术资料\自定义类型转换 
 自定义类型转换,增强struts2开发的优势,使用模型驱动的对象获取页面中传递的值,该值不仅可以是String类型,同时也可以是Date类型,Integer类型,Long类型,File类型,但是日期格式如果不符合要求,需要自己处理日期转换,可以参考【技术资料\自定义类型转换】中的《帮助.doc》进行配置

你可能感兴趣的:(项目实战,项目实战,Java)