web.xml中,jfinal的url-pattern设成“/*”对性能影响有多大?

A、直接设成项目根目录:/*,所有请求都会经过Handle,包括静态文件:

<filter-mapping>
    <filter-name>jfinal</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


B、添加服务端前缀,只对Controller进行响应,过滤掉静态文件:

<filter-mapping>
    <filter-name>jfinal</filter-name>
    <url-pattern>/ser/*</url-pattern>
</filter-mapping>


从资源开销的角度,B肯定比A更合理,但增加了url的复杂度

不清楚两者间的差别有多大,有点纠结

评论区

JFinal

2017-05-04 22:29

完全不需要纠结,生产环境之下,前面 nginx 会首先接管所有请求,这个已然是标配。既便不是 nginx 接管也不需要理会,因为即便你配置的是 /ser/* 在 tomcat 层面仍然是接管所有请求,避免不了

netwild

2017-05-04 22:34

@JFinal 那可能是我想多了,总感觉在Handle里过滤掉静态文件有点大材小用

JFinal

2017-05-05 13:20

@netwild jfinal 的 ActionHandler 跳过静态请求是极快的,用的是 String.indexOf(char) 这个方法做的判断,我几年还专门测试过,每秒上千万的量,性能消耗根本不值一提

热门反馈

扫码入社