Dou*_*oug 5 java performance servlets premature-optimization servlet-filters
我有两个问题.首先是做过滤器增加了大量的开销来请求.我们有一个过滤器,它设置为在URL模式/*上运行.这意味着它也可以在所有图像请求上运行.我认为这对性能不利,但我的同事认为,如果过滤器每个请求运行5或6次并不重要,因为过滤器只有几个if语句.
有没有办法让每个请求运行一次过滤器,忽略图像请求.
谢谢道格
在不首先对代码进行分析的情况下推测代码的性能影响几乎没有任何用处。除非过滤器中建议的代码正在执行一些您知道速度很慢的操作,否则在优化之前首先进行测量。
请记住,即使在编写 servlet 时,似乎唯一发生的事情就是您的doGet()或doPost()方法中的代码,但在调用 servlet/filter 代码之前,还会发生许多其他事情。servlet 容器处理 HTTP 请求,将其捆绑在 Java 对象中,并在将其移交给您的代码之前执行各种其他处理。
如果您的 servlet 过滤器实际上只是几个 if 语句,它们对获取成本低廉的数据(例如请求本身)进行操作,那么这对您来说不太可能是一个问题。