• 实习总结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,使用批处理设置环境变量

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


  • 相关阅读:
    java面向对象高级分层实例_实体类
    But what exactly do we mean by "gets closer to"?
    information entropy as a measure of the uncertainty in a message while essentially inventing the field of information theory
    SVM vs. Softmax
    every row of W is a classifier for one of the classes
    Hinge Loss
    polynomial time
    Conditional random fields
    Frobenius Norm
    L2 范数 L1 范数 出租车范数
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4045676.html
Copyright © 2020-2023  润新知