全运网站的建设,学校学网页设计需要自带电脑吗,tp框架做响应式网站,阿里巴巴指数查询框架结构
框架结构如下图#xff1a; 架构流程
1、 用户发送请求至前端控制器DispatcherServlet 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器根据请求url找到具体的处理器#xff0c;生成处理器对象及处理器拦截器(如果有则生成)一…框架结构
框架结构如下图 架构流程
1、 用户发送请求至前端控制器DispatcherServlet 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器根据请求url找到具体的处理器生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5、 执行处理器(Controller也叫后端控制器)。 6、 Controller执行完成返回ModelAndView 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器 9、 ViewReslover解析后返回具体View 10、 DispatcherServlet对View进行渲染视图即将模型数据填充至视图中。 11、 DispatcherServlet响应用户
组件说明
以下组件通常使用框架提供实现 DispatcherServlet前端控制器 用户请求到达前端控制器它就相当于mvc模式中的cdispatcherServlet是整个流程控制的中心由它调用其它组件处理用户的请求dispatcherServlet的存在降低了组件之间的耦合性。 HandlerMapping处理器映射器 HandlerMapping负责根据用户请求url找到Handler即处理器springmvc提供了不同的映射器实现不同的映射方式例如配置文件方式实现接口方式注解方式等。 Handler处理器(自己写) Handler 是继DispatcherServlet前端控制器的后端控制器在DispatcherServlet的控制下Handler对具体的用户请求进行处理。 由于Handler涉及到具体的用户业务请求所以一般情况需要程序员根据业务需求开发Handler。 HandlAdapter处理器适配器 通过HandlerAdapter对处理器进行执行这是适配器模式的应用通过扩展适配器可以对更多类型的处理器进行执行。 下图略粘贴太累..是许多不同的适配器最终都可以使用usb接口连接 ViewResolver视图解析器 View Resolver负责将处理结果生成View视图View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址再生成View视图对象最后对View进行渲染将处理结果通过页面展示给用户。 View视图(自己写) springmvc框架提供了很多的View视图类型的支持包括jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。 一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户需要由程序员根据业务需求开发具体的页面。 说明在springmvc的各个组件中处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。 需要用户开发的组件有handler、view
默认加载的组件
我们没有做任何配置就可以使用这些组件 因为框架已经默认加载这些组件了配置文件位置如下图
# Default implementation classes for DispatcherServlets strategy interfaces.
# Used as fallback when no matching beans are found in the DispatcherServlet context.
# Not meant to be customized by application developers.org.springframework.web.servlet.LocaleResolverorg.springframework.web.servlet.i18n.AcceptHeaderLocaleResolverorg.springframework.web.servlet.ThemeResolverorg.springframework.web.servlet.theme.FixedThemeResolverorg.springframework.web.servlet.HandlerMappingorg.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMappingorg.springframework.web.servlet.HandlerAdapterorg.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapterorg.springframework.web.servlet.HandlerExceptionResolverorg.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,\org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolverorg.springframework.web.servlet.RequestToViewNameTranslatororg.springframework.web.servlet.view.DefaultRequestToViewNameTranslatororg.springframework.web.servlet.ViewResolverorg.springframework.web.servlet.view.InternalResourceViewResolverorg.springframework.web.servlet.FlashMapManagerorg.springframework.web.servlet.support.SessionFlashMapManager组件扫描器
使用组件扫描器省去在spring容器配置每个Controller类的繁琐。 使用自动扫描标记Controller的控制器类 在springmvc.xml配置文件中配置如下
!-- 配置controller扫描包多个包之间用,分隔 --
context:component-scan base-packagecn.itcast.springmvc.controller /注解映射器和适配器
配置处理器映射器
注解式处理器映射器对类中标记了ResquestMapping的方法进行映射。根据ResquestMapping定义的url匹配ResquestMapping标记的方法匹配成功返回HandlerMethod对象给前端控制器。 HandlerMethod对象中封装url对应的方法Method。
从spring3.1版本开始废除了DefaultAnnotationHandlerMapping的使用推荐使用RequestMappingHandlerMapping完成注解式处理器映射。
在springmvc.xml配置文件中配置如下
!-- 配置处理器映射器 --
beanclassorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping /注解描述 RequestMapping定义请求url到处理器功能方法的映射 配置处理器适配器
3.6.2. 配置处理器适配器 注解式处理器适配器对标记ResquestMapping的方法进行适配。
从spring3.1版本开始废除了AnnotationMethodHandlerAdapter的使用推荐使用RequestMappingHandlerAdapter完成注解式处理器适配。 在springmvc.xml配置文件中配置如下
!-- 配置处理器适配器 --
beanclassorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter /注解驱动
直接配置处理器映射器和处理器适配器比较麻烦可以使用注解驱动来加载。 SpringMVC使用自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter 可以在springmvc.xml配置文件中使用替代注解处理器和适配器的配置。
!-- 注解驱动 --
mvc:annotation-driven /视图解析器
视图解析器使用SpringMVC框架默认的InternalResourceViewResolver这个视图解析器支持JSP视图解析 在springmvc.xml配置文件中配置如下
!-- Example: prefix/WEB-INF/jsp/, suffix.jsp, viewnametest - /WEB-INF/jsp/test.jsp --!-- 配置视图解析器 --beanclassorg.springframework.web.servlet.view.InternalResourceViewResolver!-- 配置逻辑视图的前缀 --property nameprefix value/WEB-INF/jsp/ /!-- 配置逻辑视图的后缀 --property namesuffix value.jsp //bean逻辑视图名需要在controller中返回ModelAndView指定比如逻辑视图名为ItemList则最终返回的jsp视图地址: “WEB-INF/jsp/itemList.jsp”
最终jsp物理地址前缀逻辑视图名后缀
修改ItemController
修改ItemController中设置视图的代码
// RequestMapping里面放的是请求的url和用户请求的url进行匹配
// action可以写也可以不写
RequestMapping(/itemList.action)
public ModelAndView queryItemList() {// 创建页面需要显示的商品数据ListItem list new ArrayList();list.add(new Item(1, 1华为 荣耀8, 2399, new Date(), 质量好1));list.add(new Item(2, 2华为 荣耀8, 2399, new Date(), 质量好2));list.add(new Item(3, 3华为 荣耀8, 2399, new Date(), 质量好3));list.add(new Item(4, 4华为 荣耀8, 2399, new Date(), 质量好4));list.add(new Item(5, 5华为 荣耀8, 2399, new Date(), 质量好5));list.add(new Item(6, 6华为 荣耀8, 2399, new Date(), 质量好6));// 创建ModelAndView用来存放数据和视图ModelAndView modelAndView new ModelAndView();// 设置数据到模型中modelAndView.addObject(itemList, list);// 设置视图jsp需要设置视图的物理地址// modelAndView.setViewName(/WEB-INF/jsp/itemList.jsp);// 配置好视图解析器前缀和后缀这里只需要设置逻辑视图就可以了。// 视图解析器根据前缀逻辑视图名后缀拼接出来物理路径modelAndView.setViewName(itemList);return modelAndView;
}效果
效果和之前一样如下图