idea 搭建spring mvc,并整合到Maven

---恢复内容开始---

 

(本示例使用的IntelliJ idea版本是16,其实各个版本大同小异~)

创建Maven Web项目

菜单File->New Project可进入如图界面,首先选择左边栏Maven,再配置JDK(如果之前添加了JDK的话会自动填充,如未添加点击旁边的New将JDK目录导入即可)。勾选"Create from archetype",然后选中maven-archetype-webapp,点Next,进入如下界面:

这里需要填写GroupId和ArtifactId,Version默认即可,这三个属性可以唯一标识你的项目。

我自己的maven配置

填写项目名,选择项目保存路径,点击Finish:

maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定.

下图展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto- Import,可以在每次修改pom.xml后,自动的下载并导入jar包。

我们可以看到,目录结构并不是严格的maven格式,因为少了java源码文件夹

首先在main文件夹下创建一个文件夹,名称为java

将java文件夹标识为Source Root

可以看到文件夹的颜色变了,设置完成~

Maven自动导入jar包
我们使用maven管理依赖~
Maven所做的工作就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的:

复制代码
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.winner</groupId>
    <artifactId>winner-test</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>winner-test Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>winner-test</finalName>
    </build>
</project>
复制代码

我们可以看到这个文件包含了我们之前定义的本项目的groupId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是"依赖"的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version(g,a,v)这三个必要信息(坐标)。比如上面我们看到引入可一个junit包,格式如下:

复制代码
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>
复制代码

这是单元测试包,提供了三个基本信息,第4个scope对其他包来说是非必需的。所有jar包的引入都要满足这个格式。要查看这些jar包的3个信息呢,需要查阅仓库。比如我们需要引入spring-webmvc包,打开Maven Repository搜索spring-webmvc,进入如下界面:

选择最新版本4.2.5.RELEASE,可以看到其dependency写法如下红框所示:

我们将其复制到pom.xml中的<dependencies>中:

这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:

可以发现,虽然我们只写了一个依赖,但是会把与它密切相关的jar包同时导入进来。
自此演示一个简单的maven项目所需的jar包其实已经够了~

SpringMVC框架配置
现在进行项目的配置
1、web.xml配置,默认情况下生成的web.xml的配置如下:

复制代码
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
复制代码

这并是不我们需要的,暂未找到更改生成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_3_1.xsd"
         version="3.1">

  <display-name>winner-test Web Application</display-name>

</web-app>
复制代码

在web.xml中创建Spring MVC的中央控制器

复制代码
<?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">

  <display-name>winner-test Web Application</display-name>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:mvc-dispatcher.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>
复制代码

该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为*.do),并交由Spring MVC的后台控制器来处理。这一项配置是必须的

为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况:

复制代码
<filter>
    <filter-name>encodingFilter</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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
复制代码

至此,web.xml配置完毕。

2、mvc-dispatcher.xml配置
在配置完web.xml后,在resources文件夹下创建spring配置文件mvc-dispatcher.xml:

mvc-dispatcher.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

代码如下:

复制代码
@Controller
public class MainController {
    @RequestMapping(value = "/test.do",method = RequestMethod.GET)
    public String index() {
        return "index";
    }
}
复制代码

--@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
--@RequestMapping()注解:用于定义一个请求映射,value为请求的url;
--return "index":处理完该请求后返回的逻辑视图。
回到mvc-dispatcher.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:p="http://www.springframework.org/schema/p"
       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/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置包扫描器 -->
    <context:component-scan base-package="com.winner.controller"/>
    <!-- 配置注解驱动 -->
    <mvc:annotation-driven/>
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>
复制代码

现在,需要配置Tomcat来运行该项目。

Run->Edit Configurations

点击左上角的"+"号,选择Tomcat Server,(如果没有请选择最下方的33 items more,找到Tomcat Server),再选择Local:

点击 Application server 右边的 Configure,导入Tomcat 目录:

切换到Deployment标签,再点击右边的"+"号,添加一个Artifact.

选择第二个:war exploded,点击OK,这样,该项目就已经部署到了tomcat中.

再点击OK,整个Tomcat配置结束.

运行tomcat

项目启动加载完毕后访问http://127.0.0.1:8080/test.do

 

 

---恢复内容结束---

 

(本示例使用的IntelliJ idea版本是16,其实各个版本大同小异~)

创建Maven Web项目

菜单File->New Project可进入如图界面,首先选择左边栏Maven,再配置JDK(如果之前添加了JDK的话会自动填充,如未添加点击旁边的New将JDK目录导入即可)。勾选"Create from archetype",然后选中maven-archetype-webapp,点Next,进入如下界面:

这里需要填写GroupId和ArtifactId,Version默认即可,这三个属性可以唯一标识你的项目。

我自己的maven配置

填写项目名,选择项目保存路径,点击Finish:

maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定.

下图展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto- Import,可以在每次修改pom.xml后,自动的下载并导入jar包。

我们可以看到,目录结构并不是严格的maven格式,因为少了java源码文件夹

首先在main文件夹下创建一个文件夹,名称为java

将java文件夹标识为Source Root

可以看到文件夹的颜色变了,设置完成~

Maven自动导入jar包
我们使用maven管理依赖~
Maven所做的工作就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的:

复制代码
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.winner</groupId>
    <artifactId>winner-test</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>winner-test Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>winner-test</finalName>
    </build>
</project>
复制代码

我们可以看到这个文件包含了我们之前定义的本项目的groupId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是"依赖"的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version(g,a,v)这三个必要信息(坐标)。比如上面我们看到引入可一个junit包,格式如下:

复制代码
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>
复制代码

这是单元测试包,提供了三个基本信息,第4个scope对其他包来说是非必需的。所有jar包的引入都要满足这个格式。要查看这些jar包的3个信息呢,需要查阅仓库。比如我们需要引入spring-webmvc包,打开Maven Repository搜索spring-webmvc,进入如下界面:

选择最新版本4.2.5.RELEASE,可以看到其dependency写法如下红框所示:

我们将其复制到pom.xml中的<dependencies>中:

这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:

可以发现,虽然我们只写了一个依赖,但是会把与它密切相关的jar包同时导入进来。
自此演示一个简单的maven项目所需的jar包其实已经够了~

SpringMVC框架配置
现在进行项目的配置
1、web.xml配置,默认情况下生成的web.xml的配置如下:

复制代码
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
复制代码

这并是不我们需要的,暂未找到更改生成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_3_1.xsd"
         version="3.1">

  <display-name>winner-test Web Application</display-name>

</web-app>
复制代码

在web.xml中创建Spring MVC的中央控制器

复制代码
<?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">

  <display-name>winner-test Web Application</display-name>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:mvc-dispatcher.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>
复制代码

该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为*.do),并交由Spring MVC的后台控制器来处理。这一项配置是必须的

为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况:

复制代码
<filter>
    <filter-name>encodingFilter</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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
复制代码

至此,web.xml配置完毕。

2、mvc-dispatcher.xml配置
在配置完web.xml后,在resources文件夹下创建spring配置文件mvc-dispatcher.xml:

mvc-dispatcher.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

代码如下:

复制代码
@Controller
public class MainController {
    @RequestMapping(value = "/test.do",method = RequestMethod.GET)
    public String index() {
        return "index";
    }
}
复制代码

--@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
--@RequestMapping()注解:用于定义一个请求映射,value为请求的url;
--return "index":处理完该请求后返回的逻辑视图。
回到mvc-dispatcher.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:p="http://www.springframework.org/schema/p"
       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/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置包扫描器 -->
    <context:component-scan base-package="com.winner.controller"/>
    <!-- 配置注解驱动 -->
    <mvc:annotation-driven/>
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>
复制代码

现在,需要配置Tomcat来运行该项目。

Run->Edit Configurations

点击左上角的"+"号,选择Tomcat Server,(如果没有请选择最下方的33 items more,找到Tomcat Server),再选择Local:

点击 Application server 右边的 Configure,导入Tomcat 目录:

切换到Deployment标签,再点击右边的"+"号,添加一个Artifact.

选择第二个:war exploded,点击OK,这样,该项目就已经部署到了tomcat中.

再点击OK,整个Tomcat配置结束.

运行tomcat

项目启动加载完毕后访问http://127.0.0.1:8080/test.do

 

 

 

一,maven配置

File > settings > Bulid..(快捷键 Ctrl + Alt + S) 显示maven默认的配置,可以修改,也可以用默认的

我修改为自己的:

修改后点击ok就可以了

二,创建maven项目步骤

File > new > project

 

填写Maven项目坐标值,填写完点击Next

添加一个属性,archetypeCatalog = internal,这是我百度到的一段关于为什么增加该属性的原因:

也可以不加该属性,看个人选择

添加后在点击下一步

选择项目路径。点击finish,创建完毕,可以看到下个页面:

build success说明构建成功

三,部署maven项目相关配置

File > Project Structrue (快捷键 Alt + Ctrl + Shift + S)或者点击上图所示项目配置的图标,配置Facts(特征)

配置artifacts

配置tomcat

部署项目:

成功页面:

介绍完毕

 

背景

用idea搭建spring mvc环境,网上有很多教程,但是普遍都不是很详细,容易有遗漏。也没有太多解释原因。我自己总结了一个。并会附上一定的解释。

具体步骤

新建项目

我使用的版本是IntelliJ 15.0.3
idea版本
打开IntelliJ,新建项目
新建项目
然后选择spring mvc
选择springMvc
选择目录,这个可以自己随便选
本地选择
新建好之后,可以看到自带的lib文件夹,idea会自动配置常用的,不过一般来说,我们都是用maven来做管理。
lib
选中项目文件夹,呼出菜单,选择添加框架。
添加maven框架
在弹出的菜单中选择maven
选择maven框架
这个时候可以看到项目目录改变了,多了java主目录和测试目录
新的目录结构

配置pom文件

先配置pom文件

<?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>groupId</groupId>
    <artifactId>LearnSpringMvc</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 打包方法 -->
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
    </dependencies>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

注意一定要使用war的打包方式
因为maven默认的打包方式不会放到/WEB-INF/lib里头,但是tomcat启动的时候找类会在WEB-INF/lib,如果不用war打包方式,会不停地抛
classNotFound异常的。

添加controller

添加controller类

@Controller
@RequestMapping(value = "/main")
public class MainController {

    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public String welcome(){
        return "test Web";
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

使用controller注解,表示该类为MVC模型中的Controller层。
使用RequestMapping注解,表明该Controller的主进入目录。
method表示请求的方法,@ResponseBody表明返回是一段数据。

添加spring配置文件

在resource目录中添加mvc-dispatcher-servlet.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 http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="Controller"/>
</beans>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

很多教程中会有配置项目<’mvc:annotation-driven’/>说这个是启动bean扫描的驱动,其实<’context:component-scan base-package=”Controller”/’>就已经开启扫描了,扫描选择添加Controller注解的包就好了。

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

    <!-- 添加展示名称 -->
    <display-name>SpringMvcLearn</display-name>

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:mvc-dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

servlet配置了spring的上下文,<’param-value’>指定spring配置文件。servlet-mapping 指定了spring mvc映射的目录。
目前的目录结构如下
目前的结构

配置project

在file菜单中呼出project structure选项
呼出project
在弹出的框中选择jdk的版本,我这里用的是java6
然后配置module,也选择6.0。
点击Problems,看看有没有什么问题,然后按推荐的fix就好了。
module
project

配置tomcat

下载tomcat

先上Apache Tomcat官网,下载tomcat,推荐使用tomcat7,下载之后cd到tomcat目录下的bin文件夹。因为一般来说mac下默认从zip中解压的文件都是没有运行权限的。所以给这里的catalina.sh附上运行权限。不过我一般比较懒,为了方便我会给bin上所有的文件都附上运行权限,一般本地开发无所谓的,如果商业化运作,就另当别论了。

chmod 777 *
  • 1

在idea中配置tomcat

在右上角打开运行配置
编辑运行配置
添加配置,选择tomcat local
添加tomcatLocal
选择配置tomcat配置
配置tomcat
选择下载tomcat的目录
add tomcat
我推荐使用7.
配置deployment
配置deploy
选择exploded,注意一定要是exploded的
war

关于打包的说明

一般来说tomcat会在项目的主目录下搜索web.xml文件,如果启动失败,可以检查target中是否有web.xml文件。如果没有
没有web.xml文件的情况
这个时候,可以进入Project Structure
添加web.xml文件
将web.xml引入到WEB-INF的目录下就好了
添加web.xml文件地址
注意要在WEB-INF目录下,不要搞错了
web.xml位置

运行

到此为止配置就算完成了,然后点击运行
运行
这个时候浏览器打开以下链接

http://localhost:8080/main
  • 1

就可以看到运行结果test Web了。

---恢复内容开始---

 

(本示例使用的IntelliJ idea版本是16,其实各个版本大同小异~)

创建Maven Web项目

菜单File->New Project可进入如图界面,首先选择左边栏Maven,再配置JDK(如果之前添加了JDK的话会自动填充,如未添加点击旁边的New将JDK目录导入即可)。勾选"Create from archetype",然后选中maven-archetype-webapp,点Next,进入如下界面:

这里需要填写GroupId和ArtifactId,Version默认即可,这三个属性可以唯一标识你的项目。

我自己的maven配置

填写项目名,选择项目保存路径,点击Finish:

maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定.

下图展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto- Import,可以在每次修改pom.xml后,自动的下载并导入jar包。

我们可以看到,目录结构并不是严格的maven格式,因为少了java源码文件夹

首先在main文件夹下创建一个文件夹,名称为java

将java文件夹标识为Source Root

可以看到文件夹的颜色变了,设置完成~

Maven自动导入jar包
我们使用maven管理依赖~
Maven所做的工作就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的:

复制代码
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.winner</groupId>
    <artifactId>winner-test</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>winner-test Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>winner-test</finalName>
    </build>
</project>
复制代码

我们可以看到这个文件包含了我们之前定义的本项目的groupId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是"依赖"的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version(g,a,v)这三个必要信息(坐标)。比如上面我们看到引入可一个junit包,格式如下:

复制代码
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>
复制代码

这是单元测试包,提供了三个基本信息,第4个scope对其他包来说是非必需的。所有jar包的引入都要满足这个格式。要查看这些jar包的3个信息呢,需要查阅仓库。比如我们需要引入spring-webmvc包,打开Maven Repository搜索spring-webmvc,进入如下界面:

选择最新版本4.2.5.RELEASE,可以看到其dependency写法如下红框所示:

我们将其复制到pom.xml中的<dependencies>中:

这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:

可以发现,虽然我们只写了一个依赖,但是会把与它密切相关的jar包同时导入进来。
自此演示一个简单的maven项目所需的jar包其实已经够了~

SpringMVC框架配置
现在进行项目的配置
1、web.xml配置,默认情况下生成的web.xml的配置如下:

复制代码
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
复制代码

这并是不我们需要的,暂未找到更改生成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_3_1.xsd"
         version="3.1">

  <display-name>winner-test Web Application</display-name>

</web-app>
复制代码

在web.xml中创建Spring MVC的中央控制器

复制代码
<?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">

  <display-name>winner-test Web Application</display-name>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:mvc-dispatcher.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>
复制代码

该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为*.do),并交由Spring MVC的后台控制器来处理。这一项配置是必须的

为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况:

复制代码
<filter>
    <filter-name>encodingFilter</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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
复制代码

至此,web.xml配置完毕。

2、mvc-dispatcher.xml配置
在配置完web.xml后,在resources文件夹下创建spring配置文件mvc-dispatcher.xml:

mvc-dispatcher.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

代码如下:

复制代码
@Controller
public class MainController {
    @RequestMapping(value = "/test.do",method = RequestMethod.GET)
    public String index() {
        return "index";
    }
}
复制代码

--@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
--@RequestMapping()注解:用于定义一个请求映射,value为请求的url;
--return "index":处理完该请求后返回的逻辑视图。
回到mvc-dispatcher.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:p="http://www.springframework.org/schema/p"
       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/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置包扫描器 -->
    <context:component-scan base-package="com.winner.controller"/>
    <!-- 配置注解驱动 -->
    <mvc:annotation-driven/>
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>
复制代码

现在,需要配置Tomcat来运行该项目。

Run->Edit Configurations

点击左上角的"+"号,选择Tomcat Server,(如果没有请选择最下方的33 items more,找到Tomcat Server),再选择Local:

点击 Application server 右边的 Configure,导入Tomcat 目录:

切换到Deployment标签,再点击右边的"+"号,添加一个Artifact.

选择第二个:war exploded,点击OK,这样,该项目就已经部署到了tomcat中.

再点击OK,整个Tomcat配置结束.

运行tomcat

项目启动加载完毕后访问http://127.0.0.1:8080/test.do

 

 

---恢复内容结束---

 

(本示例使用的IntelliJ idea版本是16,其实各个版本大同小异~)

创建Maven Web项目

菜单File->New Project可进入如图界面,首先选择左边栏Maven,再配置JDK(如果之前添加了JDK的话会自动填充,如未添加点击旁边的New将JDK目录导入即可)。勾选"Create from archetype",然后选中maven-archetype-webapp,点Next,进入如下界面:

这里需要填写GroupId和ArtifactId,Version默认即可,这三个属性可以唯一标识你的项目。

我自己的maven配置

填写项目名,选择项目保存路径,点击Finish:

maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定.

下图展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto- Import,可以在每次修改pom.xml后,自动的下载并导入jar包。

我们可以看到,目录结构并不是严格的maven格式,因为少了java源码文件夹

首先在main文件夹下创建一个文件夹,名称为java

将java文件夹标识为Source Root

可以看到文件夹的颜色变了,设置完成~

Maven自动导入jar包
我们使用maven管理依赖~
Maven所做的工作就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的:

复制代码
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.winner</groupId>
    <artifactId>winner-test</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>winner-test Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>winner-test</finalName>
    </build>
</project>
复制代码

我们可以看到这个文件包含了我们之前定义的本项目的groupId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是"依赖"的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version(g,a,v)这三个必要信息(坐标)。比如上面我们看到引入可一个junit包,格式如下:

复制代码
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>
复制代码

这是单元测试包,提供了三个基本信息,第4个scope对其他包来说是非必需的。所有jar包的引入都要满足这个格式。要查看这些jar包的3个信息呢,需要查阅仓库。比如我们需要引入spring-webmvc包,打开Maven Repository搜索spring-webmvc,进入如下界面:

选择最新版本4.2.5.RELEASE,可以看到其dependency写法如下红框所示:

我们将其复制到pom.xml中的<dependencies>中:

这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:

可以发现,虽然我们只写了一个依赖,但是会把与它密切相关的jar包同时导入进来。
自此演示一个简单的maven项目所需的jar包其实已经够了~

SpringMVC框架配置
现在进行项目的配置
1、web.xml配置,默认情况下生成的web.xml的配置如下:

复制代码
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
复制代码

这并是不我们需要的,暂未找到更改生成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_3_1.xsd"
         version="3.1">

  <display-name>winner-test Web Application</display-name>

</web-app>
复制代码

在web.xml中创建Spring MVC的中央控制器

复制代码
<?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">

  <display-name>winner-test Web Application</display-name>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:mvc-dispatcher.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>
复制代码

该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为*.do),并交由Spring MVC的后台控制器来处理。这一项配置是必须的

为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况:

复制代码
<filter>
    <filter-name>encodingFilter</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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
复制代码

至此,web.xml配置完毕。

2、mvc-dispatcher.xml配置
在配置完web.xml后,在resources文件夹下创建spring配置文件mvc-dispatcher.xml:

mvc-dispatcher.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

代码如下:

复制代码
@Controller
public class MainController {
    @RequestMapping(value = "/test.do",method = RequestMethod.GET)
    public String index() {
        return "index";
    }
}
复制代码

--@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
--@RequestMapping()注解:用于定义一个请求映射,value为请求的url;
--return "index":处理完该请求后返回的逻辑视图。
回到mvc-dispatcher.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:p="http://www.springframework.org/schema/p"
       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/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置包扫描器 -->
    <context:component-scan base-package="com.winner.controller"/>
    <!-- 配置注解驱动 -->
    <mvc:annotation-driven/>
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>
复制代码

现在,需要配置Tomcat来运行该项目。

Run->Edit Configurations

点击左上角的"+"号,选择Tomcat Server,(如果没有请选择最下方的33 items more,找到Tomcat Server),再选择Local:

点击 Application server 右边的 Configure,导入Tomcat 目录:

切换到Deployment标签,再点击右边的"+"号,添加一个Artifact.

选择第二个:war exploded,点击OK,这样,该项目就已经部署到了tomcat中.

再点击OK,整个Tomcat配置结束.

运行tomcat

项目启动加载完毕后访问http://127.0.0.1:8080/test.do

 

 

 

一,maven配置

File > settings > Bulid..(快捷键 Ctrl + Alt + S) 显示maven默认的配置,可以修改,也可以用默认的

我修改为自己的:

修改后点击ok就可以了

二,创建maven项目步骤

File > new > project

 

填写Maven项目坐标值,填写完点击Next

添加一个属性,archetypeCatalog = internal,这是我百度到的一段关于为什么增加该属性的原因:

也可以不加该属性,看个人选择

添加后在点击下一步

选择项目路径。点击finish,创建完毕,可以看到下个页面:

build success说明构建成功

三,部署maven项目相关配置

File > Project Structrue (快捷键 Alt + Ctrl + Shift + S)或者点击上图所示项目配置的图标,配置Facts(特征)

配置artifacts

配置tomcat

部署项目:

成功页面:

介绍完毕

 

背景

用idea搭建spring mvc环境,网上有很多教程,但是普遍都不是很详细,容易有遗漏。也没有太多解释原因。我自己总结了一个。并会附上一定的解释。

具体步骤

新建项目

我使用的版本是IntelliJ 15.0.3
idea版本
打开IntelliJ,新建项目
新建项目
然后选择spring mvc
选择springMvc
选择目录,这个可以自己随便选
本地选择
新建好之后,可以看到自带的lib文件夹,idea会自动配置常用的,不过一般来说,我们都是用maven来做管理。
lib
选中项目文件夹,呼出菜单,选择添加框架。
添加maven框架
在弹出的菜单中选择maven
选择maven框架
这个时候可以看到项目目录改变了,多了java主目录和测试目录
新的目录结构

配置pom文件

先配置pom文件

<?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>groupId</groupId>
    <artifactId>LearnSpringMvc</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 打包方法 -->
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
    </dependencies>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

注意一定要使用war的打包方式
因为maven默认的打包方式不会放到/WEB-INF/lib里头,但是tomcat启动的时候找类会在WEB-INF/lib,如果不用war打包方式,会不停地抛
classNotFound异常的。

添加controller

添加controller类

@Controller
@RequestMapping(value = "/main")
public class MainController {

    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public String welcome(){
        return "test Web";
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

使用controller注解,表示该类为MVC模型中的Controller层。
使用RequestMapping注解,表明该Controller的主进入目录。
method表示请求的方法,@ResponseBody表明返回是一段数据。

添加spring配置文件

在resource目录中添加mvc-dispatcher-servlet.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 http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="Controller"/>
</beans>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

很多教程中会有配置项目<’mvc:annotation-driven’/>说这个是启动bean扫描的驱动,其实<’context:component-scan base-package=”Controller”/’>就已经开启扫描了,扫描选择添加Controller注解的包就好了。

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

    <!-- 添加展示名称 -->
    <display-name>SpringMvcLearn</display-name>

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:mvc-dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

servlet配置了spring的上下文,<’param-value’>指定spring配置文件。servlet-mapping 指定了spring mvc映射的目录。
目前的目录结构如下
目前的结构

配置project

在file菜单中呼出project structure选项
呼出project
在弹出的框中选择jdk的版本,我这里用的是java6
然后配置module,也选择6.0。
点击Problems,看看有没有什么问题,然后按推荐的fix就好了。
module
project

配置tomcat

下载tomcat

先上Apache Tomcat官网,下载tomcat,推荐使用tomcat7,下载之后cd到tomcat目录下的bin文件夹。因为一般来说mac下默认从zip中解压的文件都是没有运行权限的。所以给这里的catalina.sh附上运行权限。不过我一般比较懒,为了方便我会给bin上所有的文件都附上运行权限,一般本地开发无所谓的,如果商业化运作,就另当别论了。

chmod 777 *
  • 1

在idea中配置tomcat

在右上角打开运行配置
编辑运行配置
添加配置,选择tomcat local
添加tomcatLocal
选择配置tomcat配置
配置tomcat
选择下载tomcat的目录
add tomcat
我推荐使用7.
配置deployment
配置deploy
选择exploded,注意一定要是exploded的
war

关于打包的说明

一般来说tomcat会在项目的主目录下搜索web.xml文件,如果启动失败,可以检查target中是否有web.xml文件。如果没有
没有web.xml文件的情况
这个时候,可以进入Project Structure
添加web.xml文件
将web.xml引入到WEB-INF的目录下就好了
添加web.xml文件地址
注意要在WEB-INF目录下,不要搞错了
web.xml位置

运行

到此为止配置就算完成了,然后点击运行
运行
这个时候浏览器打开以下链接

http://localhost:8080/main
  • 1

就可以看到运行结果test Web了。

posted @ 2018-05-22 09:24  军999  阅读(407)  评论(0)    收藏  举报