IntelliJ idea创建Spring MVC的Maven项目
参考:http://my.oschina.net/gaussik/blog/385697?fromerr=Pie9IlFV
创建Maven Web项目
菜单File->New Project可进入如图界面,首先选择左边栏Maven,再配置JDK(一般如果之前添加了JDK的话会自动填充,如未添加的话点击旁边的New将JDK目录导入即可)。勾选"Create from archetype",然后选中maven-archetype-webapp,点Next,进入如下界面:
这里需要填写GroupId和ArtifactId,Version默认即可,这三个属性可以唯一标识你的项目,比如Tomcat的GroupId是org.apache,即它是apache组织的项目,ArtifactId是tomcat,项目名为tomcat,而我当前使用的Version是 7.0.47。这些只在发布时有用,在此可以随便填写。
我自己的maven配置
填写项目名,选择项目保存路径,点击Finish:
maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定.
下图展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto- Import,可以在每次修改pom.xml后,自动的下载并导入jar包,这一点在后面详述。
我们可以看到,目录结构并不是严格的maven格式,还需进一步配置。
File->Project Structure->Model.
选中对应的文件夹,点击上面的Make as...,相应的文件夹机会变成Sources,Tests,Resources,Test Resources,按OK,结束配置。
Maven自动导入jar包
既然我们要用Spring MVC开发,那肯定少不了Spring MVC的相关jar包。如果不使用Maven的话,那就需要去官网下载相关的jar包,然后导入到项目中。现在使用maven的话,就不需要上网找jar包了。
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>springmvcdemo</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>springmvcdemo 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>springmvcdemo</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核心jar包spring-core,打开Maven Repository,搜索spring-core,进入如下界面:
点击进入红框选中的Spring Core,如下所示,可以看到各版本的使用情况:
选择最新版本3.2.0.RELEASE,可以看到其dependency写法如下红框所示:
我们将其复制到pom.xml中的<dependencies>中:
这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:
可以发现,虽然我们只写了一个依赖,但是它导入了两个jar包,也就是说,导入某个jar包时,与它密切相关的jar包也会同时被导入进来。
除了spring-core,我还要spring-web,复制spring-core的<dependency>,将spring-core改为spring-web,如下:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.2.0.RELEASE</version> </dependency>
下载完成后,查看External Libraries,会发现导入了好多jar包。
这就是Maven的强大之处,如果你需要使用Spring MVC开发网站的话,只需记住几个重要的包的名字,就可以轻松将所有包导入项目中。
现在我们要进行Spring MVC的开发,请把你的pom.xml变成下面的样子,当然不要改你的grupId等信息(从modelVersion到url都不要动):
<properties> <spring.version>3.2.0.RELEASE</spring.version> <spring-data.version>1.2.0.RELEASE</spring-data.version> </properties>
请在<dependencies>中加入以下依赖:
<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>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> <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>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>${spring-data.version}</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.0.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.6.10.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20080701</version> </dependency>
我们可以发现,除了导入了spring相关jar包,还有一些其他的包,这些包都是有作用的。如果不使用Maven请自行下载spring、hibernate、mysql、jstl、javax-servlet、json等相关jar包然后导入到工程中。至此,jar包的导入就完成了,我们按ctrl+alt+shift+s,或者File->Project Structure查看一下项目结构,看看有什么问题:
SpringMVC框架配置
进行完上面的配置,那就说明现在基本的开发环境已经搭建好了,现在要开始进行Spring MVC的网站开发。
1、web.xml配置
打开src\main\webapp\WEB-INF\下的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>
--->
<?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>SpringMVCDemo 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>SpringMVCDemo Web Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <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-servlet.xml配置
在配置完web.xml后,需在WEB-INF目录下新建 mvc-dispatcher-servlet.xml(-servlet前面是在servlet里面定义的servlet名):
新建该xml文件后,点击右上角的configure,出现 Setup Frameworks界面,点击OK,这样,IntelliJ IDEA就识别了SpringMVC的配置文件:
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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>
MVC框架有model、view、controller三部分组成。model一般为一些基本的Java Bean,view用于进行相应的页面显示,controller用于处理网站的请求。
在src\main\java中新建一个用于保存controller的package:在controller包中新建java类MainController(名称并不固定,可任意取),并修改如下:
/** * Created by winner_0715 on 2016/3/19. */ @Controller public class MainController { @RequestMapping(value = "/",method = RequestMethod.GET) public String index() { return "index"; } }
--@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
--@RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;
--return "index":处理完该请求后返回的页面,此请求返回 index.jsp页面。
回到mvc-dispatcher-servlet.xml,进行相关配置。
再次不在赘述,简单配置一下
<context:component-scan base-package="com.winner.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
现在,需要配置Tomcat来运行该项目。
Run->Edit Configurations
点击左上角的"+"号,选择Tomcat Server,(如果没有请选择最下方的33 items more,找到Tomcat Server),再选择Local:
点击 Application server 右边的 Configure,导入Tomcat 目录:
在配置好Tomcat的路径后,如下图所示,发现依然存在警告,且左方的Tomcat8图标上有一个警告标记,说明还没有配置完全:
我们还需要将项目部署到 Tomcat 服务器中。点击 Deployment,再点击右边的"+"号,添加一个Artifact.
选择第二个:war exploded,点击OK,这样,该项目就已经部署到了tomcat中.
再点击OK,整个Tomcat配置结束.
启动 Tomcat 了,其控制台输出将在IDEA下方显示
启动后,浏览器将自动弹出项目首页.
IntelliJ idea创建Spring MVC的Maven项目的更多相关文章
- IntelliJ IDEA 创建Spring+SpringMVC+hibernate+maven项目
第一步: 新建maven管理的web项目, 具体步骤参考:http://www.cnblogs.com/gczmn/p/8693734.html 第二步: 创建项目结构, 完整项目结构如下: 第三步: ...
- IntelliJ IDEA 创建Spring+SpringMVC+mybatis+maven项目
参考自:https://www.cnblogs.com/hackyo/p/6646051.html 第一步: 创建maven项目 输入项目名和工程id 选择maven 默认就可以了 刚开始时间比较长, ...
- Intellij IDEA创建spring MVC项目
相信各位未来的Java工程师已经接触到了spring MVC这个框架的强大之处,看了很多的教程,都是eclipse的,在intellij IDEA这个强大的工具面前居然不能很顺畅的,今天我就带领大家用 ...
- 一键生成Spring MVC + MyBatis + maven项目
首先创建一个新的maven项目,在src/main/java创建一个类Test 然后在Test复制以下代码: import java.io.*; import java.sql.Connection; ...
- mac os版本Intellij IDEA 搭建spring mvc的maven工程(新手教学)
由于近期换了新公司,又换mac pro作为新电脑,打算把用了很多年的eclipse换成IDEA(IDEA比eclipse的好处我就不多说了),由于mac os和IDEA刚开始用不久,所以专门用一篇博客 ...
- 记IntelliJ IDEA创建spring mvc一次坑爹的操作!!!!
本人刚开始学习spring mvc,遇到一问题,现在分享一下. 点击Next,创建项目完成,你会发现缺少很多东西. lib文件没有,里面的jar更没有.applicationContext.xml和d ...
- 使用IntelliJ Idea创建Spring MVC项目
- 用maven创建Spring MVC项目
用maven创建Spring MVC项目 mvn archetype:generate -DgroupId=fry-arthur -DartifactId=spring-mvc-study -Darc ...
- 使用idea创建spring mvc项目图文教程
使用idea创建spring mvc项目图文教程 前言: 使用惯了eclipse的朋友,如果刚换成了idea或许有些不习惯.但是使用idea之后,就会love上idea了.本文将通过图文讲解怎么通过i ...
随机推荐
- code
using System;using System.Threading; namespace ThreadLocalTest{ public class MyObject { ...
- Google地图开发总结
我们经常使用地图查位置.看公交.看街景,同时地图还开放第三方的API给开发者.利用这些API进行地图的个性化的展示和控制,例如北京被水淹了,开发一个网页显示北京被淹的地图,地图上面标志被水淹的位置.严 ...
- Autofac 的属性注入,IOC的坑
Autofac 是一款优秀的IOC的开源工具,完美的适配.Net特性,但是有时候我们想通过属性注入的方式来获取我们注入的对象,对不起,有时候你还真是获取不到,这因为什么呢? 1.你对Autofac 不 ...
- 从Google工程师到创业CTO,他的8项理念也许可以帮到你
Lan Langworth是前Google软件工程师.O'Reily作者,现在他是Artillery的co-founder/CTO,致力于把游戏机质量的游戏带进网页浏览器.下文是他从Google离职到 ...
- Java的Debug调试
一.在项目上右键,Debug As>Debug on Server 二.在测试类上,Run As>Run On Server
- mysql 安装
编译环境yum install gcc gcc-c++ ncurses-devel perl 依赖yum install boost boost-devel boost-doc 安装cmake wge ...
- 【CLR via C#】CSC将源代码编译成托管模块
下图展示了编译源代码文件的过程.如图所示,可用支持 CLR 的任何一种语言创建源代码文件.然后,用一个对应的编译器检查语法和分析源代码.无论选用哪一个编译器,结果都是一个托管模块(managedmod ...
- Linux安装xwindow图形界面(转载)
http://jingyan.baidu.com/article/7f766daf42ce984100e1d045.html 1.检查Linux系统是否能够联网. 2.执行命令 yum -y grou ...
- DarkTrack 4 Alien Version Released RAT 下载地址&视频教程
不废话,点我下载. 官方论坛:https://forum.darktrack.net 作者脸书:https://www.facebook.com/darktrackrat E安全报道:https:// ...
- iOS - 静态库的创建与使用
在日常项目开发中,不论是为了两个公司项目上的业务交流还是为了减少项目的编译时间,有的时候我们会把项目中的私密内容打包成静态库,或者是把项目中变动较少一部分打包成静态库以便提高编译效率,那么下面我们就来 ...