使用maven简单搭建springmvc

Posted mhm111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用maven简单搭建springmvc相关的知识,希望对你有一定的参考价值。

介绍

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用SpringSpring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用)Struts 2(一般老项目使用)等。

优点

Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。

它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具有的优势。而且框架本身有代码,看起来容易理解。

springmvc的工作流程

 

1.     拿到浏览器的请求先经过了核心控制器

2.     获得hello.do路径比较映射器中拿取name值的hello.do

3.     根据映射器获得的路径去找一个实现controller接口的控制器

4.     控制器响应的数据到核心控制器中,但是核心控制器并不认识ModelAndView是什么

5.     把ModelAndView交给视图解析器来解析,解析之后再给核心控制器

6.     核心控制器把视图解析过后的数据进行处理

springmvc的控制器是单例的,尽量避免书写成员属性

初级配置springmvc

导入依赖包

<dependencies>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-web</artifactId>

                  <version>4.2.5.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-webmvc</artifactId>

                  <version>4.1.3.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-core</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-context</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-beans</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-expression</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.apache.logging.log4j</groupId>

                  <artifactId>log4j-api</artifactId>

                  <version>2.3</version>

            </dependency>

            <dependency>

                  <groupId>junit</groupId>

                  <artifactId>junit</artifactId>

                  <version>4.12</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-aop</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-test</artifactId>

                  <version>4.2.6.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-aspects</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

                  <dependency>

                  <groupId>com.alibaba</groupId>

                  <artifactId>druid</artifactId>

                  <version>1.0.9</version>

            </dependency>

            <dependency>

                  <groupId>mysql</groupId>

                  <artifactId>mysql-connector-java</artifactId>

                  <version>5.1.32</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-jdbc</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.apache.tomcat</groupId>

                  <artifactId>servlet-api</artifactId>

                  <version>6.0.29</version>

            </dependency>

      </dependencies>

配置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"

   xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

   xmlns:mvc="http://www.springframework.org/schema/mvc"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context-3.0.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

        http://www.springframework.org/schema/tx

        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

        http://www.springframework.org/schema/mvc

        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

   <bean name="/hello.do" class="com.oracle.controller.HelloController"></bean>

</beans>

映射器会自动从name属性中,获取路径

注意:没有配置核心配置文件的位置和名称的时候,应该将其和web.xml文件创建在一起,且必须命名为DispatcherServlet-servlet.xml

 技术图片

 

创建控制器

新建一个控制类实现controller方法

 技术图片

 

 

测试

将其部署到tomcat测试

 技术图片

 

更改核心配置文件的名称和位置

只需在web.xml文件中,告诉核心控制器,配置文件在哪里叫什么即可

 技术图片

技术图片

 

 

编码过滤器

为每一个响应到浏览器的数据都要将其格式转换为utf-8,可以在web.xml中配置编码过滤器

 技术图片

 

但是如果拦截所有的路径,可能会将js,图片,css样式同样过滤掉,所以我们需要在springmvc.xml中配置哪些东西不需要被过滤

<mvc:resources location="/css/" mapping="/css/**"/>

      <mvc:resources location="/image/" mapping="/image/**"/>

      <mvc:resources location="/js/" mapping="/js/**"/>

配置视图解析器

我们的jsp文件如果统一放在webapp下,会显得很多很乱,因此我们可以配置视图解析器,告诉核心控制器去那里找jsp文件,找以.jsp结尾的jsp文件。

<!-- 视图解析器 -->

   <bean

   class="org.springframework.web.servlet.view.InternalResourceViewResolver">

      <property name="prefix" value="/jsps/" />

      <property name="suffix" value=".jsp"></property>

   </bean>

这样我们在自定义的控制器中,就可以只写jsp文件的名字即可。

 技术图片

 

以上是关于使用maven简单搭建springmvc的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud 微服务简单搭建 使用Maven

使用Eclipse,Maven简单搭建Spring+MyBatis

使用maven简单搭建springmvc

使用Intellij IDEA搭建一个简单的Maven项目

使用idea搭建一个简单的SSM框架:使用idea创建maven项目

maven+spring boot搭建简单微服务