发现问题 分析问题 解决问题
按照这三个步骤,形成自己的风格,不要发现问题就不知所错了,必须细心的去分析。
积累每一次解决问题的方法,
成就自己动手的能力和解决问题的能力!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 做删除操作的时候,一定要注意删除之后,还要更新其他的记录
举个例子:比如一颗树结点,你删除了叶子结点,就要考虑父结点会不会变成叶子结点,你删除了父结点就要考虑父结点下面的子结点怎么
办。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
分享到:
相关推荐
这些经验对于其他开发者来说,不仅可以提升技能,更能在遇到相似问题时提供解决思路。 `login.txt`文件可能集中讨论了登录功能的实现。作者可能会分析当前流行的多种登录认证机制,并结合实际案例,说明自己是如何...
引言部分还指出,经验回放是一种解决上述问题的技术,它通过保存经验到记忆库中并混合使用近期和不那么近期的经验来降低时间相关性,且能够多次使用那些罕见但可能对后续学习有帮助的经验。 DQN算法作为一个例子,...
用户经验(User Experience,简称UX)是用户在使用产品、系统或服务时建立起来的心理感受和反应。它涉及研究、设计和评估过程,以确保产品满足用户的需求并提供愉悦的使用体验。以下是与用户经验相关的几个关键知识...
用户体验映射(User Experience Mapping)是一种用于理解和改善用户与产品或服务交互过程中的体验的...通过这种映射方法,团队能够发现并解决那些可能被忽视的用户体验问题,创造出更符合用户期望和更加人性化的产品。
本书深入探讨了用户体验(User Experience,简称UX)的衡量方法,阐述了如何通过具体指标量化用户在与产品、应用或系统互动时的感受和体验。 ### 用户体验的概念 用户体验是指用户在使用产品、应用程序或系统过程...
通过参与实际项目,如设计简单的计数器、存储器、处理器等,初学者可以加深对Verilog的理解,同时也能提升解决问题的能力。 总的来说,"verilog-experience-for-beginners.rar_experience"提供的资源对初学者而言是...
”无论是在科学研究还是日常生活中,通过亲自尝试解决问题或完成任务,人们往往能够更深刻地理解所学知识,并在此基础上进行创新和发展。 实践中遇到的挑战和困难能够激发个人潜能,促使他们不断探索新的解决方案。...
标题中的"GeForce Experience出现something went wrong ERROR CODE 0x0003...按照上述步骤逐步排查和解决,大部分情况下都能够解决问题,让GeForce Experience恢复正常运行。记住,耐心和细心是解决这类问题的关键。
这些文件可能记录了个人在不同项目中的工作细节,如完成的任务、使用的工具和技术、解决问题的策略等,是展示个人能力和经验的重要凭证。 总的来说,"Temporary Experience"在IT行业中扮演着重要角色,它不仅是技能...
总的来说,"KSIProScan.rar_experience"这个项目涵盖了VB.NET编程基础、Windows Forms应用开发、数据库操作、问题解决和经验分享等多个方面的知识点,对于想要深入学习VB.NET编程的初学者来说,是一个非常有价值的...
它不仅能够帮助读者了解和掌握信息安全领域的最新发展动态,还能通过学习其他研究者的经验,提高个人在这一领域的专业知识和解决问题的能力。对于试图建立更为强大的信息安全体系的组织机构而言,这些论文集中的内容...
Deep Deterministic Policy Gradient (DDPG) 是一种结合深度学习与强化学习的算法,它解决了连续动作空间的问题,使得在复杂环境中智能体能够进行有效的决策。本项目将深入探讨一种改进的DDPG方法,即结合了优先经验...
3. **调试技巧**:如何使用Visual Studio的调试器进行问题定位,包括设置断点、查看变量值、调用堆栈分析等。 4. **异常处理**:C++异常处理机制,以及在VC环境下如何有效地捕获和处理异常。 5. **内存管理**:...
"Experience letter"通常指的是个人的工作或学习经历的记录,这可能包括了作者在特定项目中的角色、遇到的技术挑战、解决问题的过程以及由此获得的技能提升。这样的分享对于其他开发者来说,尤其是新手,是非常宝贵...
强化学习(Reinforcement Learning,简称RL)近年来在解决具有挑战性的问题上取得了显著进展,尤其是在电子游戏领域,例如达到人类水平的游戏技能在Atari 2600游戏上(Mnih等,2015)、击败围棋世界冠军(Silver等,...
撰写一份高质量的竞品分析报告,不仅要求对比不同产品的功能和特性,还需要有深度的逻辑分析和解决问题的思路。 1. **选择分析目标** 竞品分析首要任务是明确目标,包括分析的侧重点和选择竞品。分析侧重点应围绕...
这需要产品经理具备良好的洞察力和解决问题的能力,能够从分析中提炼出具有实践意义的策略。 总的来说,撰写竞品分析报告是一项系统性的工作,要求我们明确目标、精选竞品、深度对比,并能提出有建设性的解决方案。...
美国大学生数学建模...MCM竞赛不仅考验学生的数学技能,还强调批判性思维、问题解决能力、数据分析和有效沟通的能力。参赛者必须展示在实际问题中应用数学概念和技巧的熟练程度,以及清晰简明地呈现解决方案的能力。
1. SEQ客户感知管理系统:此系统以客户感知为中心,通过对网络中产生的大量信令数据进行实时监控和深度分析,旨在发现并解决可能导致用户通信质量下降的问题。 2. 采集接口介绍:SEQ能够接入网络的各种接口,如CS...