SpringMVC之DispatcherServlet源码关键部分
来源:互联网 发布:360手机电池修复软件 编辑:程序博客网 时间:2024/05/16 04:04
noHandlerFound(processedRequest, response);
return;
}
// Determine handler adapter for the current request.
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());
// Process last-modified header, if supported by the handler.
String method = request.getMethod();
boolean isGet = "GET".equals(method);
if (isGet || "HEAD".equals(method)) {
long lastModified = ha.getLastModified(request, mappedHandler.getHandler());
if (logger.isDebugEnabled()) {
logger.debug("Last-Modified value for [" + getRequestUri(request) + "] is: " + lastModified);
}
if (new ServletWebRequest(request, response).checkNotModified(lastModified) && isGet) {
return;
}
}
if (!mappedHandler.applyPreHandle(processedRequest, response)) {
return;
}
// Actually invoke the handler.
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
if (asyncManager.isConcurrentHandlingStarted()) {
return;
}
applyDefaultViewName(processedRequest, mv);
mappedHandler.applyPostHandle(processedRequest, response, mv);
return;
}
// Determine handler adapter for the current request.
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());
// Process last-modified header, if supported by the handler.
String method = request.getMethod();
boolean isGet = "GET".equals(method);
if (isGet || "HEAD".equals(method)) {
long lastModified = ha.getLastModified(request, mappedHandler.getHandler());
if (logger.isDebugEnabled()) {
logger.debug("Last-Modified value for [" + getRequestUri(request) + "] is: " + lastModified);
}
if (new ServletWebRequest(request, response).checkNotModified(lastModified) && isGet) {
return;
}
}
if (!mappedHandler.applyPreHandle(processedRequest, response)) {
return;
}
// Actually invoke the handler.
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
if (asyncManager.isConcurrentHandlingStarted()) {
return;
}
applyDefaultViewName(processedRequest, mv);
mappedHandler.applyPostHandle(processedRequest, response, mv);
阅读全文
0 0
- SpringMVC之DispatcherServlet源码关键部分
- SpringMVC源码之解读DispatcherServlet初始化流程
- SpringMVC源码分析(一)之DispatcherServlet
- SpringMVC源码研究之DispatcherServlet初始化
- SpringMVC源码研究之DispatcherServlet处理请求
- SpringMvc之DispatcherServlet详解
- SpringMVC之DispatcherServlet
- SpringMVC之DispatcherServlet类
- SpringMVC之DispatcherServlet
- springmvc 之DispatcherServlet初始化
- SpringMVC之DispatcherServlet配置。
- Spring Framework源码(九):SpringMVC之从DispatcherServlet说起
- SpringMVC源码(二)DispatcherServlet
- SpringMVC中的DispatcherServlet (及WebApplicationContext部分)
- springMVC学习之-------DispatcherServlet类
- springmvc 之DispatcherServlet逻辑处理
- SpringMVC之DispatcherServlet初始化顺序。
- 共同学习SpringMVC源码--DispatcherServlet(一)
- Ubuntu安装配置JDK、Tomcat、SVN服务器
- Android eclipse混淆代码
- 如何在Linux操作系统下搭建配置流媒体服务器系统
- 简单的抽奖随机策略
- protobuf协议原理与应用
- SpringMVC之DispatcherServlet源码关键部分
- [python][project][爬虫] 论文抓取
- 使用URLSession
- Android 集成百度升级SDK
- LeetCode Algorithms 32. Longest Valid Parentheses 题解
- kaggle初探——如何在 Kaggle 首战中进入前 10%
- JavaBean中通过自省机制拿到对应的属性和方法,以及BeanUtils工具类中的拷贝属性方法
- POJ 2155 Matrix (二维线段树)
- 将JavaBean用DOM4J转成xml格式的字符串,用DOM4J解析xml格式的字符串