添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
俊逸的眼镜  ·  视频号小店·  1 月前    · 
温文尔雅的紫菜汤  ·  法拉盛女王·  7 月前    · 
刚分手的茶叶  ·  ASP Investigator ...·  1 年前    · 

场景

本文是为了帮助刚接触 IDEA 的萌新快速了解如何创建与运行一个 Maven Web 项目,但由于 知识的诅咒 (#笑),如果有什么不太明白或者发现了什么问题,欢迎在最下方进行留言哦

创建

首先打开 IDEA,进入到了 IDEA 欢迎页,点击 Create New Project
IDEA 欢迎页

来到项目创建面板

  • 选择 Maven
  • 勾选上 Create from archetype (根据原型创建)
  • 选择 org.apche.maven.archetypes:maven-archetype-webapp 原型

    这里可以输入 webapp,就可以通过 Top/Bottom 键来快速找到原型了

  • GroupId:代表该项目的实体或组织。例如 com.rxliuli.example 就是一个组织 id。

    如果你对 maven 没有任何基础,可以直接使用 com.{你的英文名} 作为组织 id

  • ArtifactId:实际的工件名称。例如 idea-maven-webapp-example 就指明了该项目就是一个 idea 创建的 maven webapp 案例项目
  • Version:该项目的版本号,没什么好说的。
  • 然后是使用的 Maven 程序,IDEA 内置了 Maven,所以如果你不怎么了解 Maven 可以直接 Next 过去
    使用的 Maven 程序

    最后一步是创建 IDEA 项目,基本上不需要修改什么,直接 FINISH 即可
    创建 IDEA 项目

    配置项目

    项目初始配置

    创建完成后会提示是否选择自动引入依赖,这里选择 Enable Auto import 。当然,另一个要我们去配置 Web 框架的提示就不用管了,IDEA 已经自动完成了这一切。
    创建完成提示

    配置 Tomcat 容器

    项目搭建好了,然而我们还需要一个 Web 容器,这里以 Tomcat 作为演示

  • 使用快捷键 CS-A 打开 IDEA 结构化设置搜索
  • 输入 edit config ,找到 edit configurations...
  • 回车打开 IDEA 运行配置面板
    IDEA 结构化设置搜索
  • 添加一个新的 Tomcat 容器运行配置项
    Tomcat 容器运行配置
  • 配置 Application server,点击 CONFIGURETION 按钮
    配置 Application server
  • 选择本地 Tomcat 的目录并确定
    选择本地 Tomcat 的目录
  • 选择要运行的 war 包
    配置完成会发现下面多了一条警告 Warning:No artifacts marked for deployment ,意思是没有 jar/war 包需要被部署,这里我们只要点一下 Fix,并且选择 war exploded ,之后 IDEA 会自动完成剩余的事
    部署 war 项目

    注:有人觉得每次都要配置 Tomcat 真的挺麻烦的,这里吾辈坚决声明这是误解,只有第一次才需要配置各种环境,后面 IDEA 是能够 记住 的。

  • 最后,修改一下运行配置的名字,然后点击 OK 按钮
    修改运行配置的名字
  • 在右上角的运行配置里应该已经显示出刚才添加的运行配置项 Tomcat 了,这是点击右边的 Debug 按钮,一切就开始了
    Debug 开始
  • 运行完成后会自动打开浏览器 http://localhost:8080/ ,显示出这个项目的首页了呢
    浏览器
  • 至此,我们已经使用 IDEA 运行起来了一个基本的 Web 项目了呢!

    其他

    配置项目目录结构

    项目的文件菜单树大概长这样,初始只有这么几个文件,稍微解释一下用途

  • pom.xml :Maven 的配置文件,所有 Maven 搭建的项目都会有,记录着项目所有的依赖
  • web.xml :Web 项目所需要的一个配置文件。主要用来配置 Servlet , Filter , Listene
  • index.jsp :Maven webapp 原型自带的一个初始的 jsp 首页
  • 配置 java/resources 目录

    现在,我们已经可以写 jsp 了,那么 Servlet 之类的 java 文件应该写到哪里呢?

  • src/main 新建 java resources 目录
    新建 java/resources 目录

  • 点击 File > Project Structure 打开项目结构配置面板(或者使用快捷键 CSA-S
    Project Structure

  • 点击 Module 项
  • 选择需要的项目
  • 选中 java 文件夹
  • 点击 Source 使 java 目录变为蓝色
  • 选中 resources 目录
  • 点击 Resources 使 resources 目录变为紫色
  • 完成后点击下方的 OK
  • 修改 web.xml 的 servlet 版本为 3.1

    其实就是把 web.xml 的内容修改为下面这样

    1
    2
    3
    4
    5
    6
    7
    <?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">

    </web-app>

    添加 servlet/jsp 依赖

    虽然 tomcat 本身就有 servlet/jsp 的实现,但那是在项目运行时才会有的,而我们需要在代码中使用 Servlet 的类时,则需要添加对应的依赖。

    找到 pom.xml maven 配置文件,在 dependencies 中添加 javax.servlet javax.servlet.jsp 两项依赖

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?xml version="1.0" encoding="UTF-8"?>

    <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/xsd/maven-4.0.0.xsd">
    <!-- 其他内容 -->
    <dependencies>
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.1</version>
    </dependency>
    <!-- 其他依赖 -->
    </dependencies>
    <!-- 其他内容 -->
    </project>

    创建 Servlet

    接下来,我们的 Java 源码就全部放到 /src/main/java 下即可

    新建一个简单的 Servlet 类 HomeServlet (path: com.rxliuli.example.ideamavenwebappexample.HomeServlet )

    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
    package com.rxliuli.example.ideamavenwebappexample;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;

    /**
    * @author rxliuli
    */
    @WebServlet(name = "HomeServlet", urlPatterns = "/home")
    public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setCharacterEncoding("utf-8");
    resp.setContentType("text/html;charset=utf-8");
    final PrintWriter out = resp.getWriter();
    out.println("这里是首页哦");
    }
    }

    最后,再次点击 Debug 按钮重新运行项目,在浏览器中访问 http://localhost:8080/home ,可以看到我们的 Servlet 已经生效了呢
    访问 home Servlet

  • 这个演示项目吾辈也放到了 GitHub 上,如果需要可以随便下载
  • 如果你还不了解 maven 的话强烈建议稍微了解一下 maven 的基本概念。可以参照吾辈 blog 上的教程 Windows 上 Maven 安装与使用 进行安装
  • 如果你还不了解 IDEA(废话,这不是当然的嘛!#打),推荐阅读 IntelliJ IDEA 简体中文专题教程 进行入门
  • 那么,这篇教程到这里便结束啦,希望我们都能愉快地使用 IDEA 呢 o(〃^ ▽ ^〃)o

  •