SSM框架的搭建-----Spring与Spring MVC 的搭建

一.Spring与Spring MVC 的搭建

1.maven工程转化为web项目

首先 我们创建一个maven工程
在这里插入图片描述
这样就创建了一个maven工程了:
在这里插入图片描述
作为当前的这个工程 他是一个java web应用 所以呢我们要在基于maven的基础上 我们要进行一个web应用的改造
在这里插入图片描述
在这里插入图片描述
在右侧来进行配置 三个地方:
第一个是描述我们的web .xml的文件保存到哪一个路径下
在这里插入图片描述
第二是关于我们web应用的资源 它保存在哪一个目录呢
定位在我们刚才创建的webapp的这个目录就好了
在这里插入图片描述
而在下面我们还要创建一个全新的artifact 也就是如何运行
在这里插入图片描述
进入启动配置的界面
目前它是默认把所有的资源都增加到了左侧的发布的列表中 我们不需要做额外的调整
在这里插入图片描述
直接点击ok就可以了

此时此刻我们就将当前的工程转化为一个web的应用

可以在webapp的目录下新建一个测试用的html页 比如index.html(这时候的名字一定要是index.html 其他的比如test.html 我们的等下发布到Tomcat的时候 它是找不到的)
在这里插入图片描述
然后验证当前的这个配置是否生效 这里我们要将工程发布在tomcat下 具体的做法是点击这里的
在这里插入图片描述
在这里插入图片描述
Deployment目录:
在这里插入图片描述
下面的上下文只保留 / 就可以了 这也是我们大多数web应用的默认是设置:
在这里插入图片描述
那回到server目录下:
在这里插入图片描述
这样就行了 下面我们选择start tomcat 选择启动
当启动成功以后 我们打开浏览器
在这里插入图片描述
这样就代表我们刚才web应用的发布就成功了 我们可以在这个基础上进行spring和spring mvc的配置

2.Spring与Spring MVC 的搭建操作步骤

(1)依赖spring-webmvc

刚才 测试发布是没有问题的 首先我们定位到我们的imooc-reader pom.xml文件下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>bishe</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!--aliyun maven镜像-->
    <repositories>
        <repository>
            <id>ayilun</id>
            <name>ayiyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.30</version>
        </dependency>

        <!--spring提供的一个让springMVC支持freemarker的组件 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <!--在项目中涉及了大量的ajax  的前后json交互  json 序列化的工具包我们也是需要的-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.11.0</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.11.0</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.0</version>
        </dependency>
        </dependencies>

将这些依赖加入后 千万不要忘记这一件重要的事情:之前讲过所有的新增的依赖在被加入以后 默认是不会自动发布到我们tomcat应用中
在这里插入图片描述
至此 第一步的pom.xml的配置我们就完成了

(2)配置DispatcherServlet

<?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_3_1.xsd"
         version="3.1">

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext*.xml</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup><!--代表在web项目启动的时候就去初始化这个servlet-->
    </servlet>
    </web-app>

(3)启动Spring-MVC注解模式

在applicationContext.xml核心配置文件中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:task="http://www.springframework.org/schema/task"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/task
            http://www.springframework.org/schema/task/spring-task.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!--  3.开启springMVC的注解模式-->
    <context:component-scan base-package="com.puj"/><!--这是spring框架开启注解模式-->
    <!-- 真正开始MVC注解模式的是这一句话-->
     <mvc:annotation-driven/>
    <mvc:default-servlet-handler/><!--这个配置的作用是将我们像css js图片的 静态资源排除在外  进而提高了我们spring mvc对url的处理效率-->

(4)配置请求和响应的字符集

1.对于请求中 post请求是通过在web.xml中配置一个filter过滤器来实现的,get请求在Tomcat8.0后就默认是采用utf-8格式 不要配置。

 <!-- 解决中文乱码问题  写一个filter 主要是对post请求-->
<filter>
    <filter-name>characterFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
    <filter-mapping>
        <filter-name>characterFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2.对于响应 你在applicationContext.xml 配置一个 mvc:message-converters 消息转化器

 <!--3开启MVC注解模式和4.解决响应中的中文乱码问题-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <!--这个类是用于处理我们响应中输出...以及字符集-->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=utf-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

(5)配置FreeMarker模板引擎

1.引入依赖

 <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.30</version>
        </dependency>

        <!--spring提供的一个让springMVC支持freemarker的组件 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

2.在applicationContext.xml中 配置FreeMarker

 <!--5.配置freemarker模板引擎  要配两个bean-->
    <!--这个类是用于通知我们springMVC去哪一个目录下去加载我们freemarker脚本-->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/ftl"/>
        <property name="freemarkerSettings"><!--这是针对于freemarker本身需要设置的参数-->
            <props>
                <prop key="defaultEncoding">UTF-8</prop>
            </props>
        </property>
    </bean>

    <bean id="ViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="contentType" value="text/html;charset=utf-8"/>
        <property name="suffix" value=".ftl"/>
    </bean>

(6)配置Json序列化组件

在applicationContext.xml中 添加value>application/json;charset=utf-8

 <mvc:annotation-driven>
        <mvc:message-converters>
            <!--这个类是用于处理我们响应中输出...以及字符集-->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=utf-8</value>
                        <value>application/json;charset=utf-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

3.测试

创建一个TestController
在这里插入图片描述

(1)第一部分测试freemarker是否能正常地使用呢?

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
测试页面
</body>
</html>
@Controller
public class TestController {
    /*测试freemarker是否能正常的使用*/
    @GetMapping("/test/t1")
    public ModelAndView test1(){
        return new ModelAndView("/test");
    }

(2)第二部分测试json序列化输出

    /*测试json*/
    @GetMapping("/test/t2")
    @ResponseBody
public Map test2(){
        Map result = new HashMap();
        result.put("test","测试文本");
        return result;
    }

启动tomcat:
输入一下网址 看能否正常的输出
在这里插入图片描述
在这里插入图片描述
如果能成功跳转到以上的页面 那就说明我们spring和spring mvc搭建成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值