zoukankan      html  css  js  c++  java
  • 毕设开发日志2017-11-17

    【前言】

      日志标题上的日期戳本来想写16日的,结果一看电脑右下角已经过了零点了,好吧,又是新的一天~

      由于上周一直在准备软考,无暇编程,所以项目基本处于停滞状态。不过在复习软考期间也发现自己的理论方面确实很欠缺,以后还得抽时间再补。软考结束之后,经过了这一周加班加点的工作总算还小有收获,这里做一个总结。

    【工作内容】

    1.编写了一些工具类,包括一个日志文件输出类,一套验证码图片的渲染类,还有一个字符串的类。

    2.为了兼容实时数据的获取,编写了两个自带json转化方法的TO类。

    3.编写了一个实时数据服务,主要在接受传来的城市名称参数之后去某网站上抓取数据,在经历了抓取数据,数据提取,数据整合的过程之后返回一个实体数据类。

    4.完成了实时监控模块,包括从前台页面到action层,到service,再到文件缓存的完整链路。

    5.完成了百度地图API在项目中的整合。

    6.开始了线性回归算法的编写。

    【遇到的问题以及解决过程】

    1.数据清洗

      *问题描述:首先是正则表达式以及String字符串的截取。在数据清洗的过程中要配合正则表达式进行多次的子串匹配与截取,工作难度主要是正则表达式的编写。之前也写过一些正则,但都是一些规则的数据,比如电话号,密码规则之类的,这次要提取数据要考虑各种情况,所以就仔细学习了一下正则表达式(教程链接),另外也对String常用的截取方法做了一个总结(详情链接)。其次是文件读取,数据抓取之后要对网页进行读取,有一些可作为正则表达式的标识刚巧被换行符换掉了,这样即使正则表达式识别了换行符但是java按行读取的规则也使得正则无法使用(java读取文件的三种方式)。按字符或者字节读取的话存在识别范围太小的问题。

      *解决过程:用正则先识别一个范围较大的数据区,输出到缓存文件中,然后在数据提取之前对缓存文件中的空白字符进行清洗,在数据提取之后对缓存文件进行及时的删除。

    2.Struts报错:

      *问题描述:这个错误一般是存在action链接是Struts文件中没有配置相应的action以及result导致的。但是我的Struts和spring的配置文件中,以及前端页面上的action链接上从来没有定义过一个“css”的action以及“/FoxWeatherOS/pages/media/image/css”的result,但为啥就被Struts拦截了呢?而且这个路径也很奇怪,是前端css的路径

    1 -14 19:20:16,490 ERROR [http-apr-8080-exec-4] dispatcher.Dispatcher (CommonsLogger.java:error(38)) - Could not find action or result
    2 /FoxWeatherOS/pages/media/image/css
    3 There is no Action mapped for namespace [/] and action name [css] associated with context path [/FoxWeatherOS]. - [unknown location]at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)

      *解决过程:空白的jsp不报错,但是使用前端html就直接报错,而且控制台报错前台效果正常。怀疑是html文件出了问题。找遍了项目所有共计200+的css和js文件,终于看到style.css文件中有这样一句

    换成绝对路径还真就是报错的那个路径,于是就觉得是由于Struts拦截所有url,结果把css文件的关联操作也拦截了。删掉一句之后重新部署项目之后解决了。但是重启之后又出现了这个错误,于是妥协,让Struts只拦截.action的链接。解决。

    3.java文件路径

      *问题描述:单元测试的时候服务类能正常运行,但是用action调用的时候就找不到缓存文件了。

      *解决过程:发现原因是java普通类和javaweb对文件加载路径有着不一样的设置,所以直接使用File类来加载文件的时候有不同的效果(详细解释),于是修改代码,通过类的绝对路径来找文件,解决。

    4.json格式

      *问题描述:每次编写TO实体类的时候都会另外配置一套json相关的方法,包括使用json的构造,输出json字符串和json对象的方法等等。通过ajax返回给前端的json无法解析。

      *解决过程:编写ajax的时候要注意返回值类型应该是

     dataType: "json",
    

      这里要着重注意dataType采用驼峰命名法,即第二个T大写。另外要注意json字符串和json对象是不一样的 ,callback方法只能解析json对象,而json字符串就只是一个字符串。

    5.jQuery生成新元素的事件绑定

      *问题描述:在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件。js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现。而事件监听不是,你必须给每一个元素单独绑定事件,而且元素必须是页面上有的。js生成元素时界面还没有该元素,自然也不能绑定。

      *解决过程:采用jQuery自带的.live方式。(其他解决方案

    :$('.clickme').live('click', function() {
    //处理代码
    }); 

    【下周安排】

    1.完成线性回归算法,完成该算法支持的前台模块。

    2.闲余时间看一些面试题,补充一下理论知识。

  • 相关阅读:
    基于bootstrap实现收缩导航条
    js判断打开网站页面是PC端还是手机端
    vs2015调试sqlserver 存储过程
    C#计算当前日是第几周
    C#计算一年有多少周
    tcpdump命令的使用
    keepalived配置
    正则匹配中文
    git merge 和 git rebase详解
    systemd和sysv服务管理和配置
  • 原文地址:https://www.cnblogs.com/420Rock/p/7848082.html
Copyright © 2011-2022 走看看