SpringMVC搭建案例演示

用SpringMVC展示一个helloword

SpringMVC介绍

Spring MVC是Spring提供的一个强大而灵活的web框架。有着很多的优点其余的介绍官方也有。下面是springmvc的两张工作原理图网上找的很多当然也可以自己画。
第一张算是简略版的 第二张是详细的,在第二张里写明了执行的顺序,搭建springmvc时就按照第二张的流程图的顺序去搭建。在这里插入图片描述在这里插入图片描述

  1. DispatcherServlet表示前端控制器,它会接受请求和拦截请求用户向服务端发送一次请求。

假设一个请求:https://localhost:8080/myProject/hello
https://localhost:8080 这个是服务器域名
myProject 这个是表示的站点名项目打包时是可以添加的
hello表示控制器
总结就是请求位于服务器https://localhost:8080上myProject站点的hello控制器

  1. DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。
  2. HandlerExecution表示具体的Handler,主要作用是根据url查找控制器。
  3. HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
  4. DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller
  5. HandlerAdapter处理器适配器去执行Controller并得到ModelAndView(数据和视图),并层层返回给DispatcherServlet
    DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,然后返回真正的视图。
  6. DispatcherServlet将模型数据填充到视图中
  7. DispatcherServlet将结果响应给用户

搭建第一步

搭建前最好还是去理解一下第二张图的工作原理,理解之后在搭建的时候就不会有太大疑问了。

新建一个maven项目(这里使用的是注解)
在这里插入图片描述
项目结构
在这里插入图片描述

web.xml配置代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

<!--  第一步这里是-->
  <!-- 配置DispatchcerServlet 这是第一步-->
  <servlet>
    <servlet-name>HelloWord</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--    通过初始化参数指定HelloWord配置文件的位置,进行关联-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <!-- 1:当classpath不加*的时候表示引用当前项目类路径下满足条件的文件-->
      <!-- 2:当classpath加*的时候表示引用当前项目或者所引用jar包里面满足条件的文件-->
      <param-value>classpath:springmvc-sevlert.xml</param-value>
    </init-param>
    <!-- 启动顺序,数字越小,启动越早-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 所有请求都会被springmvc拦截-->
  <servlet-mapping>
    <servlet-name>HelloWord</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

在这里插入图片描述

Springmvc-servlet.xml配置代码
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--    //第二步这里是-->
    <!-- 配置自动扫描的包 ,指定包下的注解生效-->
    <context:component-scan base-package="com.zj.controller"/>
    <!-- 让Spring MVC不处理静态资源 像。css 。js之类的-->
    <mvc:default-servlet-handler />
    <!--
    写了这个就不用再去配置DefaultAnnotationHandlerMapping和和一个AnnotationMethodHandlerAdapter这个了
     -->
    <mvc:annotation-driven />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

在这里插入图片描述

hello控制器代码
package com.zj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
//这里不能用@RestController 这个返回的是一个字符串
@Controller
public class HelloControl {
    @RequestMapping("/hello")
    public String hello(Model model){
        //封装数据
        model.addAttribute("msg","SpringMVC 你好");
        //这个会被
        return "hello";
    }
}

在这里插入图片描述

pom.xml文件里的依赖包的可以去搜很多
这是maven依赖包的一个地址里面有很多需要什么自己可以搜很方便https://mvnrepository.com/

hello.jsp页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>${msg}</h1>
</body>
</html>

运行效果

在这里插入图片描述

以上就是简单的一个小案例,因为即将毕业找工作,所以也在温故以前的东西,这个也是看b站狂神的视频温故的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值