天津seo培训机构,seo站点,网站开发形象设计要求,简述建设网站的具体步骤1.概念 SpringMVC是一种软件架构思想#xff0c;把软件按照模型(Model)、视图(View)、控制器(Controller)这三层来划分。Model#xff1a;指的是工程中JavaBean#xff0c;用来处理数据View#xff1a;指的是工程中的html、jsp等页面#xff0c;用来展示给用户数据Control…1.概念 SpringMVC是一种软件架构思想把软件按照模型(Model)、视图(View)、控制器(Controller)这三层来划分。Model指的是工程中JavaBean用来处理数据View指的是工程中的html、jsp等页面用来展示给用户数据Controller指的是工程中的Servlet用来接收请求和响应 2.入门程序
导入依赖 注意这有一个比较不容易发现的坑当引入Spring的依赖的时候如果引入的是Spring6那么Tomcat的版本必须得是10以上的否则服务器识别不到咱们自己创的网页 dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion6.0.10/version/dependency 2.1.配置文件方式
项目文件路径 SpringMVC的出现优化了以前每写一个页面都要注册一个servlet的情况现在只需要注册一个DispatcherServlet 第一步注册DispatchServlet
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd version4.0metadata-completetrue!--创建DispatchServlet--servletservlet-namespringmvc/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!--关联一个spring配置文件--init-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:springmvc-servlet2.xml/param-value/init-param!--设置启动级别--load-on-startup1/load-on-startup/servletservlet-mappingservlet-namespringmvc/servlet-nameurl-pattern//url-pattern/servlet-mapping/web-app 第二步spring配置文件
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd!--添加处理器映射--bean classorg.springframework.web.servlet.handler.BeanNameUrlHandlerMapping/!--添加处理器适配器--bean classorg.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter/!--视图解析器:DispatcherServlet给他的ModelAndView--bean classorg.springframework.web.servlet.view.InternalResourceViewResolver idInternalResourceViewResolver!--前缀--!--property nameprefix value/WEB-INF/jsp//--property nameprefix value/WEB-INF/jsp//!--后缀--!--property namesuffix value.jsp/--property namesuffix value.jsp//bean
/beans第三步编写Controller类
public class HelloController implements Controller {Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {ModelAndView mv new ModelAndView();mv.addObject(msg,Hello SpringMVC);//视图转跳mv.setViewName(hello);return mv;}
} 第四步把Controller交给spring托管 bean id/hello classcom.sun.controller.HelloController/
第五步创建hello.jsp 结果 2.2.执行原理 上面的域名localhost:8081/hello被拆分成了两部分 localhost:8081是服务器名/hello是控制器的名字(在spring的配置文件里注册了的) springMVC的核心就是DispatchServlet首先请求进入DispatcherServlet(前端控制器)由DispatcherServlet通过HandlerMapping(处理器映射器)来获取Handler(处理器)然后用获取的Handler去寻找对应的适配器即HandlerAdapter(处理器适配器)拿到适配器之后来寻找到对应的Controller(这个是我们自己编写的)执行了Controller之后返回一个ModelAndView然后DispatchServlet拿着ModelAndView里面封装的数据和路径去找ViewResolver(视图解析器)在ViewResolver中拼接具体的路径(在上面的例子里就是/WEB-INF/jsp/hello.jsp)然后DispatchServlet再拿着这个路径去找前端页面并回显给用户 这里就不详细介绍springMVC的底层了如有需要可以看看这个大佬的文章 https://blog.csdn.net/zxd1435513775/article/details/103000992 2.3.使用注解的方式 这个是我们普遍使用的方式上面的方式是为了理解springMVC的底层 第一步由于Maven可能存在资源过滤的问题我们将其配置完善 resourcesresourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringfalse/filtering/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringfalse/filtering/resource/resources
第二步创建DispatchServlet
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd version4.0metadata-completetrue!--创建DispatchServlet--servletservlet-nameSpringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!--关联一个spring配置文件--init-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:springmvc.xml/param-value/init-param!--设置启动级别--load-on-startup1/load-on-startup/servletservlet-mappingservlet-nameSpringMVC/servlet-nameurl-pattern//url-pattern/servlet-mapping
/web-app
第三步spring配置文件
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd!-- 自动扫描包让指定包下的注解生效,由IOC容器统一管理 --context:component-scan base-packagecom.sun.controller/!-- 让Spring MVC不处理静态资源 --mvc:default-servlet-handler /!--代替处理器映射器和处理器适配器--mvc:annotation-driven /!--视图解析器:DispatcherServlet给他的ModelAndView--bean classorg.springframework.web.servlet.view.InternalResourceViewResolver idInternalResourceViewResolver!--前缀--property nameprefix value/WEB-INF/jsp//!--后缀--property namesuffix value.jsp//bean/beans
第四步编写Controller类
Controller
public class HelloController {RequestMapping(/hello)public static String hello(Model model){//封装数据model.addAttribute(msg,Hello SpringMVC);System.out.println(接收请求);//被视图解析器接收来拼装路径//hello.jspreturn hello;}
第五步创建hello.jsp