实习总结1

 

一,基于框架添加功能模块 

1,例如添加测试模块:

action层:

action/test/TestAction.java,Action后缀,处理用户请求,TestAction.java中对应的每个方法通过返回值决定调用哪个jsp页面去显示,如return input,则调用test-input.jsp

service层:

service/test/TestService.java,Service后缀,辅助action,处理业务逻辑,调用dao层与数据库交互

jsp页面显示层:

jsp/test/test.jsp,访问页面时,test/test.action(针对test.jsp),或者test/test!input.action(针对test-input.jsp)

 

 

2,处理流程:action收集jsp页面的输入数据,可能需要调用service的方法从数据库中对表增删改查,service返回结果给action,action决定调用哪个jsp页面并可能需要将结果以jsp页面呈现,Po中的每个类对应数据库中的每张表,在这个过程中充当数据的载体,

实体类的属性添加了get,set方法,则jsp页面的输入可自动赋给对象的属性,对象的数据也可以在jsp页面显示,前提是jsp页面的控件name值与实体类的属性名一致

 

3,部署程序

在tomcat的server.xml中设置context的path和docBase属性,如path="/innerPro"  docBase="E:\JavaWorkspace\innerPro\WebRoot",将其映射到工程所在的物理路径,可免去每次加载工程到wepapps文件夹下,省时

 

4,面向切面aop:若某个类符合特定条件,则无论调用该类的哪个方法,都会先触发某个方法,或者说是任何操作都需要先执行这个方法,具体应用:例如系统日志记录,做任何操作,都会触发保存日志类,根据操作类型决定是否需要保存日志

 

5,一些注解,标志作用,如@Autowired,dao的注入,使得声明了dao,就可以实现自动实例化,不需要new,就可以使用

 

6,使用svn版本控制

 

二,数据库设计

 

1,使用powerDesigner设计数据库表

1)命名规范:如t_log_info,日志信息表,对应的Po中的类是TLogInfo.java

2)table type = InnoDB,否则不能设置外键

3)虚线表示表之间的关系即可

 

2,hibernate反向工程,将设计的数据库表映射到Po中的类,遇到一个问题是 “generating artifact出错”,解决方法是后面某一步要选择select all schema

数据库表映射成po类需注意:unique,nullable

 

3,hql语句:如from TLogInfo where userId=:userId  order by logFillTime,hql语句是针对po中的实体类,是对对象集合查询,而sql语句是针对数据库表

 

三,jquery

 

1,窗口a与弹窗b的数据传递

1)b通过window.dialogArguments属性获得a传递的参数

2)b通过window.returnValue设置返回值,然后a通过var result=window.showModalDialog(  ,a传递的参数,  )获得b的返回值,

 

2,父窗口a与内嵌的iframe---(如c)的数据传递

c通过window.parent.document可以访问a的方法和各种节点,a通过window.frames[“c的name值”].document或者window.c的name值.document可访问c的节点

 

3,可以在action的方法中返回一段js代码,调用请求该action的页面内的js方法,如 在PersonallogAction.java的save方法中

return this.renderHtml(“<script>window.parent.returnback(‘1’)</script>”),

可以调用personallog-input.jsp页面的returnback方法,这样可以做到input弹窗页面根据save方法的处理结果决定向原来窗口返回什么值

 

4,选择器

1)id/类/标签/组群选择器等 可以选择document的节点元素

2)有趣的是:例如$(“#form”).append($(“img”)) 可以让img标签移动位置

3)html(“<img>”)会解析里面的html标签,显示一张图片;而val(“<img>”)只是原样赋值,不会解析成一张图片

4)window.location.reload(),如果该页面存在表单,则会询问是否重新提交,为了免去每次弹出询问窗口,可直接$(“#form1”).submit()提交

 

5,ajax

异步javascript和xml,$.get()与$.post()默认都是异步提交请求,不能改,而做表单验证时需要同步,所以要用原始的ajax,即$.ajax(),可以设置是否异步

 

四,一些常用功能的实现

1,导入导出Excel

使用poi-3.9.jar

1)导入Excel:涉及到文件上传控件,文件输入流,使用一些jar包的类如HSSFWorkbook等,从输入流中读取每行每列,单元格的值,封装成对象保存到数据库中

2)导出Excel:

方法一:设置Excel模板,用EL表达式

方法二:思路是从数据库中读取到对象集合,遍历集合,把对象的每个属性的值赋给单元格,生成excel文件,具体使用了HSSFWorkbook,HSSFSheet等类

 

五,针对需求进行功能实现的经验

1,根据需求分析功能,先确定service的接口,或者说是一些辅助方法,而非急于写页面或编写action,service完成后,一切将水到渠成

2,具备哪些功能一定不能按主观想法推测,而是遵循需求!!!

 

六,其他

1,使用批处理设置环境变量

 

posted @ 2014-10-23 14:04  野鹤闲人  阅读(223)  评论(0编辑  收藏  举报