[springMVC]03.19复习springMVC简介以及helloworld

springMVC

什么是MVC?

是一种软件架构的思想,将软件按照模型(model),视图(view),控制器(controller)来划分
module:模型层,指工程中JavaBean,作用是处理数据(分为实体类用来和数据库的字段对应封装,另一种是业务处理,用于处理业务逻辑和数据访问)
view:视图层,指的是html和jsp等页面,左右为和用户进行交互,展示数据
controller:控制层,指的是servlet,用于接受请求和响应浏览器,一遍不做业务操作,都是在里面调用service然后调用serviceImpl再调用mapper再接着调用xml

SpringMVC工作流程:浏览器通过view发送request,地址符合前端控制器的web.xml中url-pattern中的值,然后交给DispatcherServlet处理,读取SpringMVC核心配置文件在init-param中里面读取,然后再springMVC.xml中扫描组件context:component-scan中配置的开启组件扫描再找到@controller中@RequestMapping返回的字符串,之后发给springMVC的视图解析器(也就是springMVC.xml中配置的视图解析器),加上前缀后缀之后转发到用户所看的页面.

什么是SpringMVC

  1. 是Spring的一个后续产品,是Spring的一个子项目
  2. SpringMVC是Spring为表述层开发的一整套完整的解决方案,在表述层框架经历了strust(对日必学) WebWork Strust2等很多产品的更新迭代之后,作为了业界主要的表述层开发的首选方案.

SpringMVC特点

  1. 能与IOC容器完整对接
  2. 通过强大的DispatcherServlet,对请求和响应进行统一处理
  3. 代码简洁,大大提升开发效率
  4. 性能卓越

HelloWorld

  1. 创建maven工程并引入依赖和打包方式
<packaging>war</packaging>

 <dependencies>
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>3.0.12.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.1</version>
        </dependency>

    </dependencies>
  1. 在src/main目录下创建webapp文件夹
  2. 在project structure的Modules中点击Web中的Deployment Descriptiors+号添加web.xml(记得修改路径).
  3. 注册前端控制器和配置初始化springMVC.xml的路径参数
 <!--注册前端控制器-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMVC.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
  1. 新建对应param-value的springMVC.xml文件并开启扫描组件和视图解析器
<?xml version="1.0" encoding="UTF-8"?>
<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"
       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">


    <!--扫描组件-->
    <context:component-scan base-package="com.sli.mvc.controller"></context:component-scan>

    <!--视图解析器-->
    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">

                        <!-- 视图前缀 -->
                        <property name="prefix" value="/WEB-INF/templates/"/>

                        <!-- 视图后缀 -->
                        <property name="suffix" value=".html"/>
                        <property name="templateMode" value="HTML5"/>
                        <property name="characterEncoding" value="UTF-8" />
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

</beans>
  1. 在java中建包com.sli.mvc.controller和hello的类
@Controller
public class hello {

    @RequestMapping("/")
    public String index(){
        return "index";
    }
}

  1. 因为视图解析器页面的目录多了哥templates,所以在webapp/WEB-INF下面新建目录templates
  2. 建对应的index.html 页面内h1标签中写上HelloWorld即可
posted @ 2022-03-19 19:37  1_f  阅读(22)  评论(0)    收藏  举报