
1 新建javaweb项目
使用骨架创建javaweb项目,具体步骤不熟悉的参见上一篇文章【idea集成maven】。
2 添加依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
3 编写servlet
新建package
新建servlet,内容如图:
4 启动
在窗口右侧选择Maven Projects,点击Execute Maven Goal,输入 tomcat:run
项目运行成功,点击链接,访问 http://localhost:8080/maven_web
5 jar包冲突的处理
点击上一步中的链接,会报如下错误:
更换为tomcat7,添加tomcat7的plugin,然后在Execute Maven Goal,输入 tomcat7:run
<build>
<pluginManagement>
<plugins> <plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin> </plugins>
</pluginManagement>
</build>
访问后,又报如下错误:
原因:
编写代码时依赖本地仓库中的servlet-api,jsp-api,使用tomcat:run命令运行项目时,实际上使用的是maven自带的tomcat6插件,它也包含了同名的servlet-api,jsp-api,由此产生冲突。
解决办法,修改pom文件中servlet-api,jsp-api的作用域,使其只在编译时生效。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
6 为插件添加模板
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>