分析问题
2013-04-17 12:13
89 查看
一个问题:当我在index.jsp中使用下拉列表(都是index.action?...),而我在该页面加了个url:index.action,最后当我选了下拉列表中的任一项后再换成index.action,这时出现的是上次的页面。针对这个问题,主要是用来分析,了解怎么去分析一个问题。
首先怎么判断一个方法执行了没有?
需要使用到断点模式,将断点打到方法那一行,如果执行了,那么方法下面那行会显明。
action实例化了没有?
实例化了,因为没有实例化怎么会执行该方法。
我自己实例化了该action吗?
没有。
引出一个问题:没有实例化action,执行了里面的方法?
这显然是不成立的。
那是什么实例化了该action?
先放下这个问题。
spring是用来干什么的?
依赖注入资源(对象,常量。。。)
这里有对象,类可以实例化成一个对象,而通过配置文件可以了解到,是spring来实例化这个对象的。然后将这个对象注入到所需要的类中去。
那么回到刚才的问题:是什么实例化这个action?
spring实例化的。
所以得出结论,spring实例化action,注入到所需要的类中去,执行了该action里面的方法。
分析到这,又得提出疑问,既然spring实例化一个action,那为什么当我换成index.action时会出现返回的是上次从下拉列表中选中后的页面。这就让我感觉到spring没有实例化新的action,而使用的是上次实例化的action。
这就应该是spring出现的问题,很可能问题就出现在配置文件那。需要对配置文件进行分析,可以这样,拿自己的配置文件和别人的配置文件进行对比。再就是由于配置文件中最需要改变的是bean,对bean进行剖析。
当我对bean进行剖析后发现里面有个scope属性。
spring的bean属性scope如果为默认属性,那么就代表着会使用单利模式,那么如果struts从前台得到个数据,经过处理后,如果下次再进入该页面会利用到上次提交的数据,这时就会出现一个问题,action并未再次被实例化,而使用的是上次实例化的action。
spring的单例模式(scope default):只会创建一个action对象,每次访问都是同一个action对象,数据不安全。
struts要求每次访问都对应不同的action,这时将scope设立为了propertype就保证当有请求的时候都会创建一个Action对象。
从上面解析的过程,要学会怎么去分析一个问题:
一步一步的提出疑问,以肯定的方式解决疑问,直至找到突破口。
第一步是最难下手的,决定了整个思路。
矛盾冲突,提出疑问。
首先怎么判断一个方法执行了没有?
需要使用到断点模式,将断点打到方法那一行,如果执行了,那么方法下面那行会显明。
action实例化了没有?
实例化了,因为没有实例化怎么会执行该方法。
我自己实例化了该action吗?
没有。
引出一个问题:没有实例化action,执行了里面的方法?
这显然是不成立的。
那是什么实例化了该action?
先放下这个问题。
spring是用来干什么的?
依赖注入资源(对象,常量。。。)
这里有对象,类可以实例化成一个对象,而通过配置文件可以了解到,是spring来实例化这个对象的。然后将这个对象注入到所需要的类中去。
那么回到刚才的问题:是什么实例化这个action?
spring实例化的。
所以得出结论,spring实例化action,注入到所需要的类中去,执行了该action里面的方法。
分析到这,又得提出疑问,既然spring实例化一个action,那为什么当我换成index.action时会出现返回的是上次从下拉列表中选中后的页面。这就让我感觉到spring没有实例化新的action,而使用的是上次实例化的action。
这就应该是spring出现的问题,很可能问题就出现在配置文件那。需要对配置文件进行分析,可以这样,拿自己的配置文件和别人的配置文件进行对比。再就是由于配置文件中最需要改变的是bean,对bean进行剖析。
当我对bean进行剖析后发现里面有个scope属性。
spring的bean属性scope如果为默认属性,那么就代表着会使用单利模式,那么如果struts从前台得到个数据,经过处理后,如果下次再进入该页面会利用到上次提交的数据,这时就会出现一个问题,action并未再次被实例化,而使用的是上次实例化的action。
spring的单例模式(scope default):只会创建一个action对象,每次访问都是同一个action对象,数据不安全。
struts要求每次访问都对应不同的action,这时将scope设立为了propertype就保证当有请求的时候都会创建一个Action对象。
从上面解析的过程,要学会怎么去分析一个问题:
一步一步的提出疑问,以肯定的方式解决疑问,直至找到突破口。
第一步是最难下手的,决定了整个思路。
矛盾冲突,提出疑问。
相关文章推荐
- Hadoop分析日志实例的详细步骤及出现的问题分析和解决
- 逻辑分析推理(骗子购物问题)
- Android的死机、重启问题分析方法
- scrollToRowAtIndexPath 问题分析(crash 和 不执行问题)
- bot机器人账号八大类特征分析---识别问题账号
- 海量数据问题分析
- 有关 Python 2 和 Sublime Text 中文 Unicode 编码问题的分析与理解
- 问题分析--网络基础知识+.NET基础知识
- 分析和解决mnesia过载问题
- python 运行的时候出现的问题分析
- SeLinux权限问题分析(未完)
- 调用SendMessage 产生死锁的问题分析
- [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.17
- Watchdog机制以及问题分析
- 深入分析 Java 中的中文编码问题
- 通讯录结构体方法的实现 和VS中存在的一些问题的分析
- Web性能测试问题,mysql分析之一
- Android冷启动白屏解析,带你一步步分析和解决问题
- PHP无法访问远程mysql的问题分析及解决
- MIC的常见问题分析