tomcat 允许访问静态图片_tomcat中对静态资源的访问也会用servlet来处理吗

Tomcat将所有资源视为Servlet处理,包括静态资源如CSS、HTML、JS等,通过DefaultServlet进行处理。Mapper类根据7个规则判断使用哪个Servlet,DefaultServlet主要负责非Servlet和非JSP的请求,其doGet方法调用serveResource方法读取并发送静态资源到浏览器。
摘要由CSDN通过智能技术生成

展开全部

tomcat访问所有的资源,都是用Servlet来实现的。

在Tomcat看来,资源分32313133353236313431303231363533e4b893e5b19e313333633764633种

1. 静态资源,如css,html,js,jpg,png等

2. Servlet

3. JSP

对于静态资源,Tomcat最后会交由一个叫做DefaultServlet的类来处理

对于Servlet ,Tomcat最后会交由一个叫做 InvokerServlet的类来处理

对于JSP,Tomcat最后会交由一个叫做JspServlet的类来处理

所以Tomcat又叫Servlet容器嘛,什么都交给Servlet来处理。

那么什么时候调用哪个Servlet呢? 有一个类叫做org.apache.tomcat.util.http.mapper.Mapper,它一共进行了7个大的规则判断,第7个,就是判断是否是该用DefaultServlet。

简单地说。。。先看是不是servlet,然后看是不是jsp,如果都不是,那么就是你DefaultServlet的活儿了。

2b0aea795dd4085442f18edd7bf5ddb1.png

到了DefaultServlet之后,就是一个普通的HttpServlet了,doPost方法会交由doGet处理:

d8c8a337f5ecfad02b87108b8eff1927.png

doGet又交由一个叫做 serveResource的方法处理

6eaa0e8b0e781cd836be721b6de15d67.png

在serveResource方法里又瞎搞八搞了许多事情,最后在一个叫做copy()方法里,把静态资源对应的输入流 读取出来,扔到了输出流里,这样你的浏览器就看到数据了。

73455fdf064f737e776aa92d46e2e403.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值