代码清单14:FilterDispatcher.findStaticResource()方法

本文详细解析了FilterDispatcher中findStaticResource方法的工作原理,包括如何查找静态资源、处理请求路径以及设置响应头等内容。对于理解Spring MVC框架中的资源加载机制具有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  代码清单14FilterDispatcher.findStaticResource()方法

   protected void findStaticResource(String name,HttpServletRequest requeset,HttpServletResponse response) throw IOException{

if(!name.endsWith(".class")){//忽略class文件

//遍历packages参数

for(String pathPrefix: pathPrefixes){

InputStream is = findInputStream(name,pathPrefix);//读取请求文件流

if(is != null){

......(省略部分代码)

//set the content-type header

String contentType = getContentType(name);//读取内容类型

if(contentType != null){

response.setContentType(contentType);//重设内容类型

}

.......(省略部分代码)

try{

//将读取到的文件流以每次复制4096个字节的方式循环输出

copy(is,response.getOutputStream());

}finally{

is.close();

}

reuturn 

}

}


}

}

  如果用户请求的资源不是以/struts开头——可能是.jsp文件,也可能是.html文件,则通过过滤器链继续往下传送,直到到达请求的资源为止。

  如果getMapping()方法返回有效的ActionMapping对象,则被认为正在请求某个Action,将调用Dispatcher.serviceAction(request, response, servletContext, mapping)方法,该方法是处理Action的关键所在。上述过程的源代码如清单15所示。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值