zoukankan      html  css  js  c++  java
  • 在Intellij Idea中使用Maven创建Spring&SpringMVC项目

    环境及版本

    • Jetbrains Intellij Idea 15.0.6
    • Spring 4.1.6
    • JDK 1.8.0_20
    • Tomcat 8
    • Windows 10

    从 Maven archetype 创建 Java Web 项目

    点击 File > New > Project > Maven,勾选 Create from archetype 并在列表中选择 maven-archetype-webapp 。

    archetype

    随后的步骤自行设置:

    随后Maven 会根据默认的 pom.xml 自动导入依赖,为了方便以后 Maven 在我们修改了 pom.xml 后能自动开始配置依赖,我们可以点击 Enable Auto-import 。

    maven-downloading-dependencies

    maven-downloaded-dependencies

    Maven 处理完依赖之后就可以配置 Tomcat 来查看效果了。点击右上角的下拉箭头,然后点击加号配置一个新的 Tomcat ,当然也可以使用别的容器。

    在此界面中点击 Deployment 标签页,添加一个新的 Artifact。非正式项目选择 war 或者 war exploded 都可以。

    随后就可以运行服务器,得到的下过如下:

    test-java-web-project

    至此一个 Java Web 项目配置完毕。

    设置 Maven 的 pom.xml 导入 Spring 依赖

    直接将下列内容覆盖到 pom.xml 中,随后 Maven 会自动更新依赖。

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <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>SpringAndSpringMVC</groupId>
    <artifactId>SpringAndSpringMVC</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SpringAndSpringMVC Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <properties>
    <spring.version>4.1.6.RELEASE</spring.version>
    </properties>
     
    <dependencies>
    <!-- spring framework start -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
    </dependency>
     
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
    </dependency>
     
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
    </dependency>
     
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring.version}</version>
    <scope>test</scope>
    </dependency>
     
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${spring.version}</version>
    </dependency>
    <!-- spring framework end -->
     
    <!-- servlet start -->
    <dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>javax.servlet.jsp.jstl-api</artifactId>
    <version>1.2.1</version>
    </dependency>
     
    <dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
    </dependency>
     
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    </dependency>
     
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    </dependency>
     
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
    </dependency>
    <!-- servlet end -->
     
    <!-- json start -->
    <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.6.2</version>
    </dependency>
    <!-- json end -->
    <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.9.10</version>
    </dependency>
     
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
    </dependency>
     
    </dependencies>
    <build>
    <finalName>SpringAndSpringMVC</finalName>
    </build>
    </project>

    配置 web.xml

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <!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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    metadata-complete="true" version="3.0">
    <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>
     
    <servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>spring-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>
     
    <filter>
    <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
     
    <session-config>
    <session-timeout>60</session-timeout>
    </session-config>
     
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    </web-app>

    如果你像我一样在 web.xml 中添加了

    1
    2
    3
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    那么你还需要在 WEB-INF 下创建 applicationContext.xml ,其中的内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <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: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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
     
     
    <mvc:annotation-driven />
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/pages/"/>
    <property name="suffix" value=".jsp"/>
    </bean>
     
    <mvc:resources mapping="/static/**" location="/static/" cache-period="31556926"/>
     
    <context:component-scan base-package="com.sys.springandspringmvc.controller"/>
    </beans>

    上述配置文件中,<mvc:annotation-driven /> 用于启用注解配置。

    1
    2
    3
    4
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/pages/"/>
    <property name="suffix" value=".jsp"/>
    </bean>

    这个 bean 用于解析 View ,指定了 View 页面的位置及类型(后缀)。

    1
    <mvc:resources mapping="/static/**" location="/static/" cache-period="31556926"/>

    由于 SpringMVC 会对所有请求进行 URL 匹配,而像 .js 、.css 这样的静态文件是没有在 Controller 类中指定 URI 映射的,所以无法获取到。此时需要通过配置 mvc:resources 来将静态文件添加为例外。

    1
    <context:component-scan base-package="com.sys.springandspringmvc.controller"/>

    上述部分则是配置 Spring 以扫描 controller 目录进行依赖注入。

    创建包及 Controller

    在 main 目录下创建 java 目录(命名随意),此时是无法直接在其中创建包或者 Java 类的,我们必须先将 java 目录设置为代码根目录。右击 java 目录,在 Mark Directory As 中选择第一个 Source Root 。

    set-source-root

    随后在其中新建包 com.sys.springandspringmvc.controller ,并在包中新建 IndexController 类。内容可以按下面的写:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package com.sys.springandspringmvc.controller;
     
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
     
    @Controller
    public class IndexController {
    @RequestMapping("/")
    public String index() {
    return "index";
    }
    }

    同时在 webapp 目录下新建 pages 和 static 文件夹,然后创建一个 index.jsp ,随便写些内容。

    最后的目录结构如下:

    project-list

    测试

    运行 Tomcat ,访问 http://127.0.0.1:8080 ,可正常访问,至此整个项目搭建完成。

    final-test

  • 相关阅读:
    WinSCP 与 Putty 中文显示乱码解决方法
    centos 6.2上oracle 11g的远程安装
    CentOs 6.3_64静默安装oracle11g_r2
    IP地址修改后ORACLE不能使用问题
    linux查看本机IP、gateway、dns
    linux启动SSH及开机自动启动
    linux下如何从自动获取ip转到手动配置ip
    Linux系统(CentOS 6.4)的NTFS驱动NTFS3g的安装和配置
    正则表达式——去除文本中的非汉字(VB2005)
    遍历排列的实现——VB2005
  • 原文地址:https://www.cnblogs.com/taiwan/p/7078688.html
Copyright © 2011-2022 走看看