架构探险之自实现轻量级框架笔记

tomcat 会加载类 当类被使用时必定会加载




需要 请求到达servlet后 就确定请求应该分发给谁
? 为什么需要自己通过类加载器加载类 自己提前加载完,(注意: 一个类文件只会被加载一次 )
{
通过自定义类加载器 获得 类文件 通过类文件 获取各自类的信息 预先决定哪个控制器处理的哪个方法处理哪种请求 为后续操作提供基础








"^((?!\\.jsp).)*$ 所有非jsp结尾


 在重新写servlet中 加入这些
 ServletContext servletContext = servletConfig.getServletContext();
        //注册处理servlet的Servlet
        ServletRegistration jspServlet=servletContext.getServletRegistration("jsp");
        jspServlet.addMapping(ConfigHelper.getAppJspPath() + "*" );
        //注册用于处理静态资源的默认Servlet
       ServletRegistration defaultServlet = servletContext.getServletRegistration("default");
        defaultServlet.addMapping(ConfigHelper.getAppAssetPath()+"*");




}


 req.getRequestDispatcher(ConfigHelper.getAppJspPath() + path).forward(req, resp); 请求转发


resp.sendRedirect(req.getContextPath() + path);  请求重定向


本框架(书上原版本) 由于DispatcherServler 匹配为/*,所有从浏览器来的所有请求都会被拦截




resp.sendRedirect(req.getContextPath() + path);   请求重定向 : 如果使用该种方式,重定向,从新由浏览器发送请求,
该请求被拦截,重新进入DispatcherServler若出现handler未匹配现象,则什么也不会返回




req.getRequestDispatcher(ConfigHelper.getAppJspPath() + path).forward(req, resp); 请求转发 该种不是从浏览器
重新发送 由 服务器内部转换而请求到相应servlet (DispatcherServler只会处理外界所有请求) 在直接返回response

猜你喜欢

转载自blog.csdn.net/qq_32459653/article/details/81047255