9月末已经把《社保欠费查询系统》的需求确定下来,10月份主要用于项目开发。
收获一:"工作"和"学习"中还是有很大区别的
‘工作‘中讲究‘效率‘。因为工期是固定的,所以必须要保证每天完成的任务量。而且有了经理的监工。
‘学习‘中倘若没有严格的自我约束和明确的目标,很难保证‘高产‘,所以我们才有了‘今目标‘,才有了对应的制度!
‘工作‘中讲究:有问题不要一个人闷着解决!多问问别人,没准你花半天解决的问题,别人只需要两分钟的时间就可以帮你解决问题。这样造成的后果就是:实现了功能,却不工作原理。一旦出错就会手忙脚乱,瞎调试。
‘学习‘中讲究:遇到问题要独立解决。要学会觅食,而不是等别人喂你。学习的是一种‘自学能力‘。
‘工作‘中讲究:分工合作。一个人做一个功能点,做完了以后,拿出来讲一讲。以后我们就按照这个固定的方式进行开发,节约时间。这点充分说明了:我们正处于一个‘知识分享的时代‘,但是谁又能否定是一种‘填鸭式的教学方式呢‘?!
‘学习‘中讲究:一个人的国度。所有功能都要自己一一实现。
要知道‘站在巨人的肩膀上‘只是第一步,我们需要做的是在此基础上用自己的大脑去消化知识,而不是一味的做个码农。
收获二:每天的工作要有‘目的性‘,按计划行事
就在前几天被经理批评"每天的任务模块已经给你规定好了,你需要做的是:‘在规定的时间干规定的事!‘别做那些没用的事。"
在拿到一个新项目之后,首先要做的就是根据模块进行分类,然后估算出每个模块的工作量,然后按部就班的执行就好了,值得注意的是:前期的准备工作,一定要‘细‘,用流程图来梳理思路。否则后期的开发过程中,会让自己‘绕死‘的。
‘学习‘亦是如此,没有明确的目标,再认真的学习态度也无法抵达终点。
下面来说一下这个月的工作情况:
10.01-10.07:攻克:导入导出Excel、多表联合查询
10.07-10.12:完成项目功能60%
10.15 :去中海纪元初步验收项目
10.16-10.19:完成项目功能100%(以上传文件判断逻辑为主)
10.20 :复习GCT
10.21-10.27:测试并完善系统中的BUG
收获三:项目中的开发经验
1、JSP与Action之间传参
1)JSP->Action
①Action中利用ModelDriven,直接使用‘model.属性‘即可。
②Ajax异步回调通过url传递参数,Action中通过request.getParameter获取
③JSP中写任一标签,Action中定义此标签的get、set方法后,直接取出
2)Action->JSP
①Ajax异步回调,Action中对data进行赋值,JS中判断
②Action把返回结果写在值栈中,JSP中用隐含域获取,JS弹出hidden中的结果
③Action中庸JOptionPane.showMessageDialog弹出返回结果。缺点:样式太难看
2、原生SQL是弱项
1)分页
由于项目中采用的是OA框架,只能对单表进行分页。
在对多表进行联合查询的时候无法套用公共方法,此时可以采用原生sql,传递两个参数(起始页)达到分页效果;或者利用hibernate两个参数进行分页setFirstResult(20)设置起始行、q.setMaxResults(10)每页条数 ,达到分页效果。
同时要注意‘分页风格要统一‘。
2)查询
如果是复杂的业务查询(如:包含行转列),这里提供两种思路:
①写原生SQL,复杂的逻辑转到DAO层控制,返回List<Object>,页面中庸struts2标签直接循环即可。
需要提醒的是:不要局限于只有‘实体‘中的记录才可以被迭代出!
②通过hibernate配置文件可以达到以下效果:只需要查询主表,从表的记录会自动被关联查出。然后新建 一个专门用于界面显示的实体E,把List<Object>中的记录一一放在该实体E对应的属性中。后界面中循环显 示
比较而言,①需要扎实的SQL基本功,Action和页面中的代码更简单一些;而②中Action不仅仅用于转发,不免有些违背了设计的初衷。(这里的‘循环显示‘指的是利用struts2标签的Iterator迭代。)
3、上传Excel
步骤:先把本地File文件上传至Tomcat服务器,后从Tomcat中读取文件流,上传到数据库。
思路:
①数据库中保存的是:Excel中的记录
②数据库中保存:Excel文件路径和名称+服务器保存文件副本
解决缓存问题:MyEclipse中project->clean。
4、验证码
本质都是利用‘随机数‘,两种:
1)文本框验证码
特点:代码简单,直接在JS中判断验证码的正确性,无需传递至Action中
缺点:由于验证码的本质是text,缺少安全性
2)图片验证码
特点:将自动生成的验证码存放在Session中,后在Action中进行判断。
优点:安全性
5、JS和CSS调试
JS调试主要利用:Firebug工具。
技巧:少->多 , 添加‘断点‘ ,观察‘监控‘中的参数变化 , 控制台的错误信息。
最重要的还是两点:细心+耐心。相信一句话:孰能生巧。
6、Hibernate的映射文件技巧
一对一、一对多、多对一、多对多的映射关系中配置文件的技巧
将在以后的文章中进行总结。
7、安全控制,控制Action的访问权限
两种:
1)在‘拦截器‘中配置
若系统比较小,可以使用。
2)在‘数据库‘中读取
若系统比较大,推荐使用。还要有一个‘权限系统‘。