SpringMVC--01快速入门

快速入门

  1. 创建一个 javaweb 项目
  2. 引入 spring-webmvc,servlet,logback,thymeeleaf 的相关依赖
  3. 在 web.xml 文件中配置 springmvc 的前端控制器
  4. 在 WEB-INF 目录下创建 springmvc-servlet.xml 配置文件,并配置组件扫描和视图解析器
  5. 在视图解析器所配置的目录下创建视图模板
  6. 编写控制器controller,指定访问某个路径后返回的逻辑视图名称
  7. 部署到 tomcat 并执行

较为完整的配置

  • pom.xml
    • servlet
      • 记得加上<scope>provided</scope>
      • 用以指定依赖范围
  • web.xml
    • 字符编码过滤器(CharacterEncodingFilter)
      • 初始化参数
      • encoding:UTF-8
      • forceRequestEncoding:true
      • forceResponseEncoding:true
    • springmvc控制器(DispatcherServlet)
  • springmvc-servlet.xml
    • 包扫描路径(context:component-scan)
    • thymeleaf视图解析器
    • 开启注解支持(mvc:annotation-driven)
    • 视图控制器(mvc:view-controller path=“/” view-name=“index”)
      • 可以省略编写初始页面的处理器方法
    • 静态资源处理(mvc:default-servlet-handler)

/pom.xml 配置文件

<dependencies>
    <!-- 引入springmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>6.1.4</version>
    </dependency>
    <!-- 引入servlet,此处使用tomcat10引用的是jakarta -->
     <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>6.0.0</version>
    <!--  指定依赖范围,provided表示该依赖由第三方容器提供  -->
      <scope>provided</scope>
    </dependency>
    <!-- 引入日志 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.5.3</version>
    </dependency>
    <!-- 引如thymeleaf模板 -->
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring6</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>
</dependencies>

WEB-INF/web.xml配置文件

 <!--配置前端控制器,用于控制所有请求分发-->
 <servlet>
     <servlet-name>springmvc</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>springmvc</servlet-name>
     <!--
         / 表示:除jsp结尾的请求路径之外所有路径
         /* 表示:所有请求路径
     -->
     <url-pattern>/</url-pattern>
 </servlet-mapping>

WEB-INF/springmvc-servlet.xml配置文件
若未进行springmvc配置文件名称指定,则必须使用上述文件名

<!--  组件扫描  -->
 <contest:component-scan base-package="com.atli.controller"></contest:component-scan>

<!--  配置视图解析器  -->
 <bean id="thymeleafViewResolver" class="org.thymeleaf.spring6.view.ThymeleafViewResolver">
     <!--作用与视图渲染的过程中,可以设置视图渲染后输出时采用的编码字符集-->
     <property name="characterEncoding" value="UTF-8"></property>
     <!--如果配置多个视图解析器,它来决定优先使用那个视图解析器,值越小优先级越高-->
     <property name="order" value="1"></property>
     <!--当ThymeleafViewResolver渲染模板是,会使用该模板引擎来解析,编译和渲染模板-->
     <property name="templateEngine">
         <bean class="org.thymeleaf.spring6.SpringTemplateEngine">
             <!--用于指定Thymeleaf 模板引擎使用的模板解析器。模板解析器负责根据模板位置、目标资源名称,文件编码等信息,加载模板并对其进行解析-->
             <property name="templateResolver">
                 <bean class="org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver">
                     <!--设置模板文件的位置(前缀)-->
                     <property name="prefix" value="/WEB-INF/templates/"></property>
                     <!--设置模板文件后缀,thymeleaf文件扩展名不一定是html,也可以是其他,如txt-->
                     <property name="suffix" value=".html"></property>
                     <!--设置模板引擎类型,列如HTML,TEXT,JAVASCRIPT,CSS等-->
                     <property name="templateMode" value="HTML"></property>
                     <!--用于模板文件在读取和解析过程中采用的编码字符集-->
                     <property name="characterEncoding" value="UTF-8"></property>
                 </bean>
             </property>
         </bean>
     </property>
 </bean>

<!-- 提供@RequestBody等注解支持,若不添加会出现406错误 -->
 <mvc:annotation-driven/>

模板视图:WEB-INF/templates/mytemplate.html

<!doctype html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <title>First Spring MVC</title>
    </head>
    <body>
        <h1>First Spring MVC </h1>
    </body>
</html>

控制层:MyController.java

@Controller
public class MyController {
    // 请求映射
    @RequestMapping("/hello")
    public String hello(Model model){
        // 返回一个逻辑视图名称
        return "mytemplate";
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值