挑灯夜读——Spring MVC:入门保姆级教学操作

24 篇文章 0 订阅
11 篇文章 0 订阅

流程介绍

  • 本次项目是参考书籍和网上信息做的一次小学习,希望能有所收获!
    步骤如下

  • 1 :创建项目,引入jar包。

  • 2:配置前端控制器

  • 3:创建Controller类

  • 4:创建Spring MVC的配置文件,配置控制器映射信息

  • 5:创建视图网页

  • 6:启动项目,测试应用

本次项目的步骤就可以简单总结为以上六点,下面我们将一一做介绍。

1、创建项目,引入jar包

  • 开启本次项目之路,配置好相关jar包,以满足项目需求,这些包可以在idea中直接创建时选用,如下:
    在这里插入图片描述
    : 本次可能遇到的问题(包括,创建目录没有Spring选项,解决方法如下),如果有,可以跳过

  • 方法一:

  • 同时点击 “ctrl + Shift + Alt + / ”,会出现一个目录,选择最上面的Register。进入下列目录选项:
    在这里插入图片描述

  • 然后进入并选择 : javaee.legacy.project.wizard,最后重启即可
    在这里插入图片描述

  • 方法二:选择setting -> Plugins 在里面搜索spring,打勾后点击Apply,重启即可(我使用方法一,这是网上方法)
    在这里插入图片描述

  • 之后的整体框架都初始化好了,只需要配置一下tomcatArtifacts

配置tomcat的目的是发布服务器,作为一个PC端可发布的小型服务器,可以较为快速的在电脑上发布并被访问。

  • 1、配置如下:在这里插入图片描述
    :如果出现端口被占用,方法一:杀掉占用该端口的进程;方法二:更换上述的HTTP port端口。JMX port同理。如果右下角存在Fix按钮,点击修复即可!!!

  • 2、Artifacts:作为一个maven中的概念,表示某个module需要如何打包。例如我们常说的jar、war或者war exploded、ear等形式。
    在这里插入图片描述

2、配置前端控制器

  • 在web.xml文件中配置我们的前端控制器DispatcherServlet,如下所示:
    在这里插入图片描述
  • 在servlet元素下配置前端过滤器。并初始化加载配置文件。

主要是对前端过滤器初始化时加载的文件进行配置,在元素 “init-param”中实现,并在servlet-mapping映射中将*.from修改为 / 。

  • 其中:load-on-startup元素中的1表示容器在启动时立即加载这个Servlet;url-pattern元素中的"/"来拦截所有的URL,统一交由DispatcherServlet处理。

3、创建Controller类

  • 在项目src下,创建org.spring.controller目录文件,并创建hello.java文件如下:
    在这里插入图片描述
    :导入的包,选择与红色框定选择的相同才对。

  • 其中logger日志,将调用情况记录下来。

  • ModelAndView时我们的包含了视图名和模型的对象

  • 对象添加hello world的信息,其attributeName起名为message。

  • 设置逻辑视图名,也就是通过该路径,找到我们的网页文件。

  • 将该对象返回

4、创建配置文件,配置控制器映射信息

  • 先上图:
    在这里插入图片描述

可以看到上述添加的内容都在红色方框中,其中分别配置了Handle、处理映射器、处理适配器以及视图解析器。

  • 首先定义了一个名称为“hello”的Bean,该Bean会将控制类hello映射到“/hello”请求中;

  • 然后配置了处理器映射器,其目的是为了将处理器Bean中的name(即url)进行处理器查找;

  • 然后配置了处理器适配器,主要是为了完成对hello处理器中handleRequest方法进行调用;

  • 最后配置了视图解析器InternalResourceViewResolver来解析结果视图,将视图呈现给用户。

  • 在spring4.0之后,其实可以不要配置处理映射器、处理适配器和视图解析器,Spring内部会默认加载出来,这里展示是为了仔细了解内部原理。

5、创建视图页面

  • 在创建controller类时我们提到,在给对象添加逻辑视图名时,就埋下了网页创建在何处的伏笔,最终需要在WEB-INF目录下创建content目录,在该目录下创建名为welcome的jsp文件,如下:
    在这里插入图片描述
  • 其中head作为标题,显示在我们的网页最上端的位置,body作为主要内容显示在网页中。我们使用${}作为EL表达式来获取对象name为message的信息。(此时会获取到hello world信息,如下)
    在这里插入图片描述

6、启动项目

  • 点击右上角绿色三角符号,完成项目发布,到tomcat服务器后启动服务器。在浏览器中访问我们在tomcat中设置的网址进行访问。默认为8080端口,我更改为8888。
    在这里插入图片描述
  • 可以看到访问成功,并且如下在调试台看到
    在这里插入图片描述
  • 每点击一次都会使handleRequest被调用。也就明白了整个流程的意义。

总结

  • 1、用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器DispatchServlet拦截
  • 2、拦截到请求后,会调用HandleMapping处理器映射器
  • 3、处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有就生成)一并返回DispatcherServlet
  • 4、DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理适配器)
  • 5、处理适配器会调用并执行Handler(处理器),这里的处理器就是程序中编写的Controller类,也被成为后端控制器
  • 6、Controller执行完成后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型与视图名
  • 7、处理器适配器将ModelAndView对象返回给DispatcherServlet(前端控制器)
  • 8、前端控制器会根据ModelAndView对象选择一个合适的ViewResolver(视图解析器)
  • 9、ViewResolver解析后,会向前端控制器中返回具体的View
  • 10、前端控制器对View进行渲染(即将模型数据填充至视图中)
  • 11、视图渲染结果会返回给客户端浏览器显示
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米店不卖你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值