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>