为什么重写doGet和doPost方法,而不直接重写Service方法呢?

问题引入


今天突然想到这样一个问题,HttpServlet中Service方法里面可以自动识别调用doGet()和doPost()方法,为什么我们还要花功夫去重写这两个方法呢?直接用一个service不就好了吗?

查了一些资料,发现service方法中实现了缓存协商的机制,你如果去重写了这个方法,这种好处你就得不到了。这也是我们为什么去重写doget和dopost的原因。


参考文章

https://my.oschina.net/dtkking/blog/89443      写的最清楚的,推荐去看

https://blog.csdn.net/weixin_43719752/article/details/105817583


原因

Service方法中帮我们实现了缓存协商功能,如果我们重写service,如果自己没添加这个机制,在访问网站时一些未更改的静态资源反复的被加载,这样会减慢访问速度,浪费流量。

通常一个网站有大量的静态资源,我们访问一次就能被缓存,下一次访问时,被缓存的资源不会重复加载,这样也能提高我们的网页访问的速度,这就是不重写service的好处。


结论

在Servlet中我们尽量 重写doGet和doPost方法,而不直接重写Service方法(简言之就是Service里面实现了一些其他好的方法,重写后就得不到这种好处了),这样第一次加载完成之后,接下来再访问能提高加载的速度,特别是静态资源多的一些网站。

 

 

 

你可能感兴趣的:(为什么重写doGet和doPost方法,而不直接重写Service方法呢?)