zoukankan      html  css  js  c++  java
  • 实习总结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:JavaWorkspaceinnerProWebRoot",将其映射到工程所在的物理路径,可免去每次加载工程到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,使用批处理设置环境变量

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    IIS7中的几种身份鉴别方式(一)Basic身份验证
    IIS7中的几种身份鉴别方式(二)集成身份验证
    java集合
    SharePoint 2010中welcome page的设置细节
    SharePoint中使用Linq出现未将对象引用到实例化的解决方法
    SharePoint 2010中关于An error was encountered while retrieving the user profile的处理方式记录
    The Need for an Architectural Body of Knowledge
    The Softer Side of the Architect
    Event Receivers 学习小结
    使用SmtpClient发送带图片的邮件的代码实现
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4045676.html
Copyright © 2011-2022 走看看