目录
I.创建简单项目
II.创建简单web项目
III、Web项目配置
I.创建简单项目
进入idea创建项目
在接下来的页面中会直接显示maven选项,由于我们索要创建的是一个最简单的maven项目,所以说我们需要做的是勾选图示所示的“Create From Archetype”复选框,在下面的下拉选项中我们选择“quickstart”,之后点击【Next】
在接下来的面板中,我们填写maven的坐标,“groupId”,“artifactId”,以及“version”,其中groupId是公司域名的反写,而artifactId是项目名或模块名,而version就是该项目或模块所对应的版本号。填写完之后,点击【Next】
在接下来的面板中选择本地的maven,选择完成后点击【Next】
比如说我的maven选择如下所示:
在接下来的慢板中填写项目名,比如说我的填写如下,填写完成后点击【Finish】
之后就进入了maven的主页面,在这里maven将自动下载一系列的maven依赖,当所有的都自动完成后,创建的maven项目结构如下所示:
在main和test目录中创建resourses目录
点击file----project structure ------选择modules
将resourses设置为存放静态文件的目录
将java目录设置为sourse目录(如果不设置在写代码时发现不能创建java文件)
II.创建简单web项目
1.选择Maven项目->创建模版->maven简单web程序
GroupId一般是公司的倒写,Artifactid是项目文件名,Version不用改
三个框分别为Maven地址、settings.xml地址、仓库地址(后两个框一开始是灰色的,要把后面的复选框点开)
不用改,直接完成
然后生成了初始项目目录
让Maven能自动导入:
2.配置Maven项目默认值
此步骤是为了以后创建Maven不需要重新改变参数而设定默认值,可以先跳过
如果因为此步骤发生了[ERROR] Maven execution terminated abnormally (exit code 1),并且在本文得不到解决,可以参考[ERROR]
更改默认地址
,在VM Options里面填入 -DarchetypeCatalog=internal
完成。
III、Web项目配置
1.Tomcat插件配置
配置Tomcat总是出现各种问题,直接用Maven插件解决就好。
在自动生成的pom.xml文件的build标签下直接加入:
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
注意,不要擅自将plugin标签放到自动生成的其他plugins标签内,这只会导致没反应,直接放到build标签下就不会出问题。
以上代码可以更改的是configuration标签内的内容,通过增加、修改其中的内容,就可以像下载配置Tomcat一样更改配置。例如port是端口号,path是基本路径,uriEncoding是编码。
如果一切正常,此刻Maven project应该会出现Tomcat7
如果你的右侧没有Maven project栏,就先去左下角的窗口中,将Maven project点出来。
此刻已经自动生成了一个index.jsp文件,运行Tomcat7:run,就可开启服务器
此时访问http://localhost:8080/即可看到helloworld页面。
有时我不想将页面放到右侧启动,而是和普通Tomcat一样在上面启动,可以点击上面的Edit Configurations
点加号,选择Maven
该默认的名称,下面的框打上tomcat7:run(如果没问题,在你刚打上t的时候就会出提示)
现在只要按上面绿色的三角就可以启动服务器了
2.Web项目配置
当前状态已经可以放jsp了,只要和index.jsp在同级目录下就好,但依然不是servlet web项目,我们可以看到,当前的目录都是有缺失的,因此要在src / main目录,和webapp同级的位置新建java和resources文件,其中java就是用来承装Servlet源码的地方。
然后配置文件夹属性:
别忘了最后点最下面的apply(应用)
此刻在java下新建包,我命名为com.demo
在包下新建HelloWorld类
1.png
导入包并继承自servlet类
package com.demo;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends javax.servlet.http.HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
response.getWriter().print("Servlet project create is success!");
}
}
此时发现很多类都是不能被解析的(con't resolve symbol),那是因为没有依赖,此时回到pom.xml中,在dependencies(依赖)标签下增加新的依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
此时就没有那些错误了。注:有些教程没有<scope>provided</scope>这一项,这会导致出错。
然后回去在web.xml中添加地址映射(就在web-app标签下):
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.demo.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
此时我们启动服务器,并访问http://localhost:8080/hello,即可看到结果: