1. 回顾servlet:https://www.bilibili.com/video/BV1xY411b7hv/ https://mp.weixin.qq.com/s/yuQqZzAsCefk9Jv_kbh_eA
创建HelloServlet标签,它负责拦截/user下的请求
所以,请求类似于http://localhost:8080/user?method=add将会被拦截,并交由HelloServlet对应的com.kuang.servlet.HelloServlet类处理,该类将取出?后面对应的字符串,如'method=add',这是一个键值对的形式,
String method = req.getParameter("method"); if (method.equals("add")){ req.getSession().setAttribute("msg","执行了add方法"); } if (method.equals("delete")){ req.getSession().setAttribute("msg","执行了delete方法"); }
之后,将进行转发,跳转到页面。
req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp);
2. 第一个MVC程序:
(1)用户发送请求到DispatcherServlet,即前端控制器
(2)DipatcherServlet调用处理器映射器HandlerMapping解析
(3)处理器映射器HandlerMapping根据请求的url找到具体的处理器,生成处理器对象和处理器拦截器一并发给DispatcherServlet
(4)DispatcherServlet通过处理器适配器HandlerAdapter调用处理器;
(5)执行处理器,即controller,也叫后端控制器
(6)controller执行完毕后返回ModelAndview给处理器适配器HandlerAdapter
(7)处理器适配器HandlerAdapter将controller返回的ModelAndView发送给DispatherServlet
(8)DispatcherServlet将ModelAndView传给视图解析器viewResolver
(9)viewResoler解析后返回具体的view
(10)DispatcherServlet对view进行渲染视图(即将模型数据填充到视图中)
(11)DispatcherServlet响应客户