返回介绍

11.4.7 逻辑处理

发布于 2025-04-22 22:09:17 字数 1337 浏览 0 评论 0 收藏

对于逻辑处理其实是通过适配器中转调用 Handler 并返回视图的,对应代码:

mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

同样,还是以引导示例为基础进行处理逻辑分析,之前分析过,对于普通的 Web 请求,Spring 默认使用 SimpleControllerHandlerAdapter 类进行处理,我们进入 SimpleControllerHandlerAdapter 类的 handle 方法如下:

public ModelAndView handle(HttpServletRequest request, HttpServletResponse response,

Object handler)

throws Exception {

  return ((Controller) handler).handleRequest(request, response);

}

但是回顾引导示例中的 UserController,我们的逻辑是写在 handleRequestInternal 函数中而不是 handleRequest 函数,所以我们还需要进一步分析这期间所包含的处理流程。

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

throws Exception {

// Delegate to WebContentGenerator for checking and preparing.

checkAndPrepare(request, response, this instanceof LastModified);

//如果需要 session 内的同步执行

  if (this.synchronizeOnSession) {

   HttpSession session = request.getSession(false);

   if (session != null) {

    Object mutex = WebUtils.getSessionMutex(session);

    synchronized (mutex) {

    //调用用户的逻辑

     return handleRequestInternal(request, response);

   }

  }

 }

 //调用用户逻辑

  return handleRequestInternal(request, response);

}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。