模拟Spring MVC的具体实现

1.Controller.java

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* ⾃定义接⼝,实现管理多个请求,在模拟Spring MVC中的控制器

*/

        public interface Controller {

                String handleRequest(HttpServletRequest request,

                HttpServletResponse response);

        }





2.DispatcherServlet.java负责将多个请求分发给各⾃不同的控制器

@WebServlet(urlPatterns = {"/ProductInput", "/ProductDetail"})

public class DispatcherServlet extends HttpServlet {protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {

    String requestURI = request.getRequestURI();

    String action =requestURI.substring(requestURI.lastIndexOf("/") + 1);

    Controller controller = null;

    if("ProductInput".equalsIgnoreCase(action)){

            controller = new ProductInputController();

    }else if("ProductDetail".equalsIgnoreCase(action)){

        controller = new ProductDetailController();

    }

    String url = controller.handleRequest(request, response);

    request.getRequestDispatcher(url).forward(request,response);

}



结论:多个请求可以交给同⼀个Servlet(DispatcherServlet),然后各⾃不同的请求会交给各

⾃的控制器。所有请求都叫个DispatcerServet,该⻆⾊相当于⼀个前端控制器,可以⼤⼤的提

⾼客户的以及服务器端的⼯作效率。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 842评论 0 0
  • 第一章Spring的MVC框架 6.1 SpringMVC概要 Spring的web框架是围绕Dispatcher...
    程序员日常填坑阅读 278评论 0 0
  • Spring mvc 框架 DispatcherServlet前端控制器 ---- 整个流程控制的中心,由它调用其...
    蕊er阅读 721评论 0 0
  • SpringMVC 简易模拟 为了安全,我们将涉及数据的网页放入WEB-INF文件夹下.图1.jpg <c:for...
    不是潘西是潘安阅读 49评论 0 0
  • SpringMVC介绍 Spring web mvc 和Struts2都属于表现层的框架,它是Spring框架的一...
    day_Sunny阅读 766评论 0 0