如何处理web静态文件
spring mvc 处理静态资源文件
在spring mvc中,通过三种方式来处理静态资源
激活Tomcat的defaultServlet来处理静态文件
参考tomcat config目录下的web.xml,这种方式IDE不友好,IDE会报找不到default servlet
在spring3.0.4以后版本提供了mvc:resources
可以读取WEB-INFO和jar包里面的资源文件,也可以控制浏览器缓存
使用
<mvc:default-servlet-handler/>
通过使用DefaultServletHttpRequestHandler来把静态资源文件丢给容器处理,和方式一做的事情一样,这种方式兼容多种web容器,ide友好。使用这个一般是在
DispatcherServlet
映射为/
时,让静态资源继续交给容器处理。其实这种方式的性能不好,因为DispatcherServlet
里执行了一大坨代码。
前端页面优化
前端页面优化,可以用yslow(yahoo强大的web团队推出的精品)、chorme audit、PageSpeed来评估
只用apache的童鞋可以考虑使用modpagespeed,结合apache的内存缓存,减少服务器IO开销。
比较理想的方式还是在web服务器加上一个反向代理服务器(varnish、nginx),它来缓存静态资源文件
开源的公共js、css库,可以考虑各种开源cdn服务,鉴于国内的网络情况,推荐两个国内的cdn:
避免Java应用中NullPointerException的技巧和最佳实践
http://www.importnew.com/7268.html
- 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。
- 当valueOf()和toString()返回相同的结果时,宁愿使用前者。
- 使用null安全的方法和库(spring和guava都提供了相关工具)
- 避免从方法中返回空指针,而是返回空collection或者空数组。
- 使用annotation@NotNull 和 @Nullable(目前是想起了才用,得强迫自己加上了)
- 避免你的代码中不必要的自动包装和自动解包。
- 遵从Contract并定义合理的默认值。
- 定义数据库中的字段是否可为空。
- 使用空对象模式(Null Object Pattern)
如何优雅地使用 Windows 系统?
http://daily.zhihu.com/story/395
不离不弃windows很多年了,令人恶心的超级本天天让我纠结,下次一定换MAC。不过还是先将就下。
tomcat进程关闭时收集dump信息
https://gist.github.com/bohrqiu/6518715
给gist加个超链接
PhantomJS
PhantomJS 是一个基于webkit的无界面浏览器,它提供了js api来实现dom操作、css选择器、json、canvas、svg
PhantomJS适用于下列场景:
貌似速度比Selenium快,用它来抓取页面数据应该很happy。官方有很多栗子,可以深入挖掘下。
Advanced REST client
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
构造一个rest请求,有时候有点麻烦,借助Advanced REST client,可以很方便的chrome中构造一个REST请求,方便测试