1. Архитектура JavaEE
Два, шаблон дизайна mvc | идея
Model 模型层 (javaBean组件 = 领域模型(javaBean) + 业务层 + 持久层)
View 视图层( html、jsp…)
Controller 控制层(委托模型层进行数据处理)
3. Введение в springmvc
springmvc是一个web层mvc框架,类似struts2。
В-четвертых, отношения между SpringMVC и весной
springmvc是spring的部分,其实就是spring在原有基础上,又提供了web应用的mvc模块。
5. Сравнение sprigmvc и struts2
实现机制:
struts2是基于过滤器实现的。
springmvc是基于servlet实现的。
运行速度:
因为过滤器底层是servlet,所以springmvc的运行速度会稍微比structs2快。
struts2是多例的
springmvc单例的
参数封装:
struts2参数封装是基于属性进行封装。
springmvc是基于方法封装。颗粒度更细。
6. Схема принципа работы springmvc
Семь конкретных шагов процесса springmvc
⑴ 用户发送请求至DispatcherServlet。
⑵ DispatcherServlet收到请求调用HandlerMapping查询具体的Handler。
⑶ HandlerMapping找到具体的处理器(具体配置的是哪个处理器的实现类),生成处理器对象及处理器拦截器(HandlerExcutorChain包含了Handler以及拦截器集合)返回给DispatcherServlet。
⑷ DispatcherServlet接收到HandlerMapping返回的HandlerExcutorChain后,调用HandlerAdapter请求执行具体的Handler(Controller)。
⑸ HandlerAdapter经过适配调用具体的Handler(Controller即后端控制器)。
⑹ Controller执行完成返回ModelAndView(其中包含逻辑视图和数据)给HandlerAdaptor。
⑺ HandlerAdaptor再将ModelAndView返回给DispatcherServlet。
⑻ DispatcherServlet请求视图解析器ViewReslover解析ModelAndView。
⑼ ViewReslover解析后返回具体View(物理视图)到DispatcherServlet。
⑽ DispatcherServlet请求渲染视图(即将模型数据填充至视图中) 根据View进行渲染视图。
⑾ 将渲染后的视图返回给DispatcherServlet。
⑿ DispatcherServlet将响应结果返回给用户。
Восемь, описание основного компонента springmvc
(1)前端控制器DispatcherServlet(配置即可)
功能:中央处理器,接收请求,自己不做任何处理,而是将请求发送给其他组件进行处理。DispatcherServlet 是整个流程的控制中心。
(2)处理器映射器HandlerMapping(配置即可)
功能:根据DispatcherServlet发送的url请求路径查找Handler
常见的处理器映射器:BeanNameUrlHandlerMapping,SimpleUrlHandlerMapping,
ControllerClassNameHandlerMapping,DefaultAnnotationHandlerMapping(不建议使用)
(3)处理器适配器HandlerAdapter(配置即可)
功能:按照特定规则(HandlerAdapter要求的规则)去执行Handler。
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展多个适配器对更多类型的处理器进行执行。
常见的处理器适配器:HttpRequestHandlerAdapter,SimpleControllerHandlerAdapter,AnnotationMethodHandlerAdapter
(4)处理器Handler即Controller(程序猿编写)
功能:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。
(5)视图解析器ViewReslover(配置即可)
功能:进行视图解析,根据逻辑视图名解析成真正的视图。
ViewResolver负责将处理结果生成View视图,ViewResolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
springmvc框架提供了多种View视图类型,如:jstlView、freemarkerView、pdfView...
(6)视图View(程序猿编写)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
Девять, случай входа springmvc
-
Создать maven-проект
- Настроить POM.XML
Представьте связанные зависимости: базовый пакет spring, spring-webmvc, необходимый для springmvc, slf4j-log4j12, связанный с журналами, jstl, servlet-api и jsp-api, связанный с jsp.
- настроить web.xml
Поскольку DispatcherServlet сам по себе является сервлетом, его необходимо настроить в файле web.xml.
- Настроить springmvc.xml
1. Используя метод загрузки файла конфигурации springmvc по умолчанию, необходимо соблюдать следующие спецификации:
① Правила именования: -servlet.xml ====> springmvc-servlet.xml
② Правило пути: -Servlet.xml должен быть помещен в веб-инф ниже
Во-вторых, если вы не используете расположение загрузки по умолчанию, вам необходимо указать путь загрузки к файлу конфигурации SpringMVC в Web.xml, как показано на рисунке выше.
- Пользовательский контроллер (процессор)
Настройте пользовательский обработчик контроллера в контейнере Spring и позвольте контейнеру Spring управлять им, потому что сопоставитель обработчика в файле конфигурации springmvc.xml здесь настроен с помощью BeanNameUrlHandlerMapping. Согласно имени, сопоставитель обработчика основан на bean-компоненте (self- Определите URL-адрес значения атрибута имени контроллера), чтобы найти обработчик класса выполнения (контроллер), поэтому значение атрибута имени компонента является URL-адресом, соответствующим пути запроса, отправленному пользователем.
- определить страницу просмотра
Разобрать путь в соответствии с представлением: WEB-INF/jsps/index.jsp
- Проанализируйте процесс выполнения springmvc по коду
- Карта процессора (настройка нескольких процессорных материалов)
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
Функция: Найдите контроллер класса выполнения в соответствии с URL-адресом атрибута имени компонента (пользовательский контроллер).
- Адаптер процессора (можно настроить несколько адаптеров процессора для совместной работы)
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
Функция: когда пользовательский обработчик (контроллер) реализует интерфейс контроллера, адаптер будет выполнять определенные методы контроллера.
- Исходный код адаптера обработчика SimpleControllerHandlerAdapter
В интерфейсе Controller есть метод handleRequest, который является методом обработчика.
Следовательно, если пользовательский контроллер хочет вызвать, он должен реализовать интерфейс контроллера и переопределить метод обработчика в интерфейсе контроллера.
- добавить журнал
- результат операции
如果觉得这篇文章对你有帮助
麻烦帮忙点个赞或关注
这对我来说是一种很好的鼓励
在此先谢谢各位
O(∩_∩)O