Spring MVC SimpleFormController 详细流程图
看了好久的代码,终于搞清楚了 阅读顺序: 1.《请求表单_流程》 2.《非Session_Form的提交》 3.《Session_Form的正常提交》 4.《Session Form的非正常提交》
看了好久的代码,终于搞清楚了 阅读顺序: 1.《请求表单_流程》 2.《非Session_Form的提交》 3.《Session_Form的正常提交》 4.《Session Form的非正常提交》
rt40720.03
1.仅从表面现象判断出错的地方。 一个报文从A发到B收不到,从B发给B自己却能收到,这让我以为问题在操作系统或者TCP/IP协议方面。这样判断太草率,因为运行的环境不同,可能导致程序中不同语句的执行时序也不同。我的同事QQ曾提出一个通用的排错公式: 已知:环境A + 程序A = 出错 若 环境B + 程序A = 正常 Then 环境A存在问题 若 环境A + 程序B = 正常 Then 程序A存在问题 道理虽然简单,但在实际运行中我们往往只是无意识地运用这个公式,而不是有意识地。无意识=启发式 + 迅速, 有意识 = 穷举 + 完备 2. 日志比较重要。对于非致命的错误,界面的输出往往只是粗略的出错原因,日志才能告诉你更多的细节,如异常发生所在的类,所在的方法等等,必要的情况下,要将日志输出的级别设为最低,否则就查不到足够的信息。 3. 日志所记录的异常可能仍不是最原始的异常,这时候就要单步调试了。将断点设在日志所记录的出错处,然后一步一步地查找出错原因
因为这个字符永远也输入不了,用它作分隔符就不会跟有意义的文字混淆在一起 这是某公司的牛人说的
p(String.valueOf("5".split("\\.").length)); //print "1" p(String.valueOf(".5".split("\\.").length)); //print "2" p(String.valueOf("\"\".5".split("\\.").length));//print "2" p(String.valueOf("5.".split("\\.").length)); //print "1" p(String.valueOf("5.\"\"".split("\\.").length));//print "2" p(String.valueOf("".split("hi").length));//print "1" p(String.valueOf("hi?".split("\\?").length)); //pring "1" 还有: " hi".split("\\s+") = {"","hi"}
String filename= "侬好.txt"; filename = URLEncoder.encode(filename,"utf-8"); response.setHeader("Content-disposition","attachment; filename="+filename);
1. new Xxx() 2. 通过反射机制中的newInstance()方法 3. clone() 4. 反序列化
发送给对象的请求和它的相应操作在运行时刻的连接就叫做“动态绑定”。动态绑定允许你在运行时刻替换有相同接口的对象,这种可替换性就叫做“多态”
40629.97
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());