发现问题 分析问题 解决问题
按照这三个步骤,形成自己的风格,不要发现问题就不知所错了,必须细心的去分析。
积累每一次解决问题的方法,
成就自己动手的能力和解决问题的能力!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-5-21 使用Common.js插件检测Js报错html处报错
1 极有可能js里的格式错误,例如少')','}'等等。
2 jsp页面本身错误
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-5-21 Struts1标签错误
出现Struts1标签错误要考虑
1 jsp页面是否引入了Struts1标签。
2 该标签是否必须在html:form中进行使用。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-5-18 用Companiontool查看js错误的时候,显示html错误
1 引入的js有错误(方法括号没匹配上)
2 html中标签使用错误
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-4-29 空指针错误classCast转换错误
空指针是最痛苦的错误!一般要注意传的参数!
例如IBatis sql的写法的时候,注意传入参数和返回参数!
一般count的时候直接在返回参数上返回Long,不要等到返回Object
最转换成Long,这样很容易出错
我就是报了个措ClassCast错误
返回的是Object
但是实际上是BigDecimal
BigDecimal转Long的时候报错!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-4-27 页面显示数据问题
后台数据以json格式返回到前台(分为json数组和json对象)
前台展示数据的时候,js和后台没有报任何错误,就是显示Dataerr
很可能是前台展示的时候数据的格式定义错误!(借助了第三方插件)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
页面转值问题
例如:男女在数据库里一般存储的都是0,1标志位
在页面上显示的话,可以有很多处理方法
1 在数据库查询的时候用decode函数。
2 在应用程序中用java程序进行转换。
3 在jsp页面上进行转换。
这里只是说的显示用。
采用哪种方法比较好呢,节约系统的资源,提系统的资源。
如果要节约系统的资源的话,最好在页面上进行转换
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
java.lang.NoClassDefFoundError: org/springframework/beans/factory/BeanFactoryAware
没有报具体的Dao错误
很容易事spring读取资源文件的时候报错!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
404错误
上次发生过一次,这次又写一次,看来没有吸取教训。
如果后台和前台没有明显的错误,那么极有可能forward的path写错了!
首先就应该定位在这里。
不要怀疑页面上语法写错了,那是很少有的事。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-4-20
javax.servlet.jsp.JspException: Cannot retrieve mapping for action: "/secured/marketProject/activityBackController"
这种错误,解决方法
0 分析:找不到这个action
1 首先要确认系统启动的时候加载了Struts的配置文件
2 spring和struts配置文件里都对这个path进行了配置
3 然后才可以去猜测这种写法是错误的!
解决问题的方法是有先后顺序的,不要一上来就从3开始。这种情况要避免。
仔细分析问题。
总结:发现错误,要仔细的分析,不要盲目的猜测,这种写法是错误的。
其实明白了struts是怎么读取配置文件就可以了,还有调用相应的方法就可以了。
了解Struts的原理。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
测试
今天叫我测试,我测了半天,总是盯着一个系数看,测了很多条数据了,都没报错
不细心,测试就是细心活,要好好来测,细心的观察!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-4-15
ajaxForm 异步调用的时候
传进去的contextPath是正确的
但是就是进不去Controller层,似乎察觉不到错误的地方,有点不想解决了
突然把异步请求URL全部alert出来,发现多了contextPath后多了空格
其实最不认为出错的地方,其实也有可能出错。
仔细分析问题,解决问题,程序员是个细致活,不是大大捏捏的粗糙的汉子做的事。
要养成仔细分析问题,准确定位错误的习惯。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-4-15
log4j,日志打印出sql语句
当Ibatis调用的时候没有sql语句输出来,
说明调用的时候,代表sql语句的那个字符串极有可能出了问题。
如果有sql语句出来但是没有返回结果,报异常或者其他的错
首先 仔细查看异常定位问题,如果定位不到,那么必须确保以下:
1 要确保sql语句是正确的
2 要确保传进去的参数写法是正确的
3 要确保sql返回的DTO的属性与别名是否一致(一般这种异常可以精确定位)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
渐渐地喜欢上了不喜欢看错误,
发现错误,总是喜欢乱点,以为能解决问题
发现问题之后要仔细的努力的去
分析问题,然后解决问题。
500 错误是服务器端出现了问题,数据库取数据的时候转DTO很容易出现问题
服务器启动的时候,Ibatis的配置文件的数据字段已经跟数据库的
表的字段进行匹配,如果配置文件的sql语句有
问题,服务器启动的时候会出现问题的,
weblogic服务器启动不了,并不仅仅是配置残留的问题,还可能是sql语句写错了的问题,
注意细看问题。
在页面上用c标签进行显示的时候,报错该DTO没有这个属性?
首先进行分析
1 确保sql别名与DTO属性一致
2 确保controeller层跳转页面之前查询的DTO里有值
3 页面上直接输出DTO看是否错误!如果没错,则很可能是属性
写法有问题,然后用getXXX的XXX去得看能不能得到值。查看
javaBean对属性的编写规范,发现属性前两个字母要么大写要么小写
而我恰好是一个大写一个小写,改正之后没有报错。
缩小错误范围,将错误一网打尽!!!!
~~~~~~2010-04-10~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<html:hidden property="type" styleId="type" value="${team.type}"/>
property 与form对应?
${team.type} 与request中的dto对应
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
异步处理
B/S性能要求
浏览器网速 + 宽带 + 应用程序端 + 服务器端
如果应用程序端到服务器端所耗得时间不可减除
那么可以考虑宽带加速性能
貌似这有点说不通了,可以用异步来做到这一点
举个例子:
查询很多记录有数据又有记录条数,请求一次全部返回
采用异步的话数据一次请求,记录条数一次请求,这样的话
查询一次分两次请求谁先回来就先显示谁。
节约了显示时间
最优方法:
查询内容不采用异步,先把内容查询出来,form要回填页面
等页面加载完后再异步去动态提交form去查记录数
这样的话,两次请求就不会你争我强的!
当然当数据库,浏览器请求,能使用两次异步并发操作的话
那样也可以,查内容的同时又同时查记录同时进行
1 查内容再查记录 返回浏览器显示(同步)
2 查内容查记录同时进行,谁先返回谁先显示(异步)
3 查内容返回浏览器显示,再异步查记录总数返回浏览器显示(同步+异步)
采用这种方法没有成功(返回的内容和记录条数不一致)是因为:同步回来内容显示后,查询记录数异步请求采用的是URL
传参请求,在controller层request里得不到查询条件(很多查询条件也无法再url后一一列出),在controler执行方法的form中也得不到查
询条件,是因为异步又启了一个请求。不过现在可以实现了,为什么? 因为强大的Jquery提供了form异步提交的功能!爽吧。(Strut1 form
会自动回填页面的!)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpu 内存
B/S模式
1 启动spring ioc容器所占的内容必须的!当然可以采用延缓实例化
2 应用程序的定时任务,执行的时候会耗CPU,这当然了。
3 整个项目跑起来的时候,当很多并发请求发出后,主要是new的对象实例以及集合类实例所占用的内容,计算,循环等地方会导致cpu猛增
当然当这个请求处理完后,java垃圾回收器就会收集垃圾了,cpu和内存慢慢的降下来。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 今天我更新的时候,老是没有更新成功,后台查看sql语句
更新成功了(以为),总是返回0,
俊生仔细查看后,更新条件写错了,更新的条件根本不能查询出来那条数据
发现问题要仔细分析下,把更新sql在pl/sql中执行一下,没错的话
就查看这条语句更新了没,同时看更新的条件能查出这条记录吗?
发现问题要仔细分析。
2 邸yuijs不能用了,children地方发现了错误,刚开始
没有耐心看,以为是其他什么地方错了,当仔细查看后,children
那个地方的写法的确错了!
3 当Ibatis使用Insert插入一条数据的时候,总是返回null
的确没有做特殊处理,返回都是null
查看后台sql语句,查询数据库的时候确插入了数据,这个时候就要想到
插入都成功了,是不是返回值上出了问题,发现问题要仔细分析
不要盲目的去查找,定位错误的出处,查找下就ok解决了!
4 YUI注意地方
controller层返回的类型
返回alert 出 [object,Object]就应该知道返回的是Json格式的数据
{"key":"vale","".....}类似对象的形式
后台返回的是Object(Class)转Json
返回alert 出 [object,Obect],[object,Obect],[object,Obect
就应该知道返回的是list数组的形式
var a = [{},{},{}];
后台返回的是List转Json
datasoure处设置的返回类型
中间不需要做数据eval()操作
<script>
var a = [{},{},{}]
alert(a);
var b = {"a":"b"};
alert(b);
var c = {};
alert(c);
var d = new Object();
alert(d);
alert(typeof d);
</script>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 从两个数据库表中查出来的值在页面显示的是一样的
做比较的时候确总是false,这个时候就要确定有没有空格的情况存在
6 从控制层到servicer层
insert操作处理
·页面返回:记录已存在,插入成功,插入失败
一般插入之要判断该条记录之前存不存在,按照页面上的返回,而且遵守
service层命名规范,boolean insertMethods(),boolean 只能返回两个状态
所以记录已存在应该在controller层完成,insert以及insert以后要更新
其它记录的操作要放在service层操作,这样一来,insert成功了,insert之后
的更新异常了,这样insert,update操作都会回滚的。如果放在controller层就不一样了。
前提条件:事务是做到service层的
(方法1,所有Service的层的方法都启动事务;方法2:insert,update,delete打头的方法都启动事务)
由于ibatis的insert操作没有做特殊处理的话,没有东西返回,所以只能通过异常来判断是否成功!
void insertService() throws Exception;
7 查询条件都用form,插入也用form
8 返回类型都用Dto
9 导入sqlmap文件到Spring中
10 普通form标签里不能出项struts标签
11 启动的时候sqlmap会去匹配相关信息
12 标签错误
<form></form>里包含了一个<jsp:include page='navi.jsp' />
该页面中有<html:text>标签,导致一致报标签错误,刚开始
不知所错,茫然的瞎点,心情也烦躁起来,这个时候千万别犯傻。 千万不要烦躁不安,一定要仔细的分析,缩小问题范围以使得解决万问
题。
把<jsp:include>去掉没有报错,就没有错误,就应该怀疑form标签出了问题
13 做删除操作的时候,一定要注意删除之后,还要更新其他的记录
举个例子:比如一颗树结点,你删除了叶子结点,就要考虑父结点会不会变成叶子结点,你删除了父结点就要考虑父结点下面的子结点怎么
办。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
分享到:
相关推荐
Avaya_Flare_Experience
nvidia_geforce_experience_3.19.0.94-22411驱动版本,解决nvidia_geforce_experience_3.20.3.63-25266驱动无法使用滤镜问题
the elements of user experience
GeForce_Experience新版
NULL 博文链接:https://afeiod.iteye.com/blog/642564
关于Hindsight Experience Replay的原始论文,适合初学者对深度强化学习Hindsight Experience Replay的认识和了解
Beginning Adobe Experience Design 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
关于PRIORITIZED EXPERIENCE REPLAY DQN的原始论文,适合初学者对深度强化学习PRIORITIZED EXPERIENCE REPLAY DQN的认识和了解
Designing the Mobile User Experience
The bible of user experience. 用户体验类的圣经
Agile Experience Design A Digital Designer’s Guide to Agile, Lean, and Continuous Lindsay Ratcliffe and Marc McNeill
This document summarizes a set of tests of user experience in indoor hotspot scenarios with two small cell solutions, LTE Pico and WiFi. The analyses and tests results show that LTE small cell has ...
Sample Efficient Actor-Critic with Experience Replay
We introduce the concept of Quality of Experience, which has traditionally been used only in the telecommunications industry, to mobile system optimisation. We develop user experience models in the ...
GeForce_Experience_v3.13.1.30
googleB4-Experience-with-a-GloballyB4-Experience-with-a-Globally
RECURRENT EXPERIENCE REPLAY IN DISTRIBUTED REINFORCEMENT LEARNING
The Elements of User Experience 2nd Edition Dec 2010
Title: Designing the User Experience of Game Development Tools Author: David Lightbown Length: 188 pages Edition: 1 Language: English Publisher: A K Peters/CRC Press Publication Date: 2015-02-18 ISBN-...
显卡驱动问题。 解决深度学习显卡问题: 去NVIDIA重新下载显卡驱动,官网会自动帮你确定你的显卡类型,我需要装的是GeForce Experience