IDEA和Maven开发Java Web——从头开始创建项目及配置、启动

之前一直用的Eclipse写Java,在一次小组作业时用了IDEA,一段时间后完全忘记怎么用了,于是写了这篇笔记,方便自己和需要的人参考。

1)创建父项目

在"New Project"中选择Maven项目,勾选"Create from archetype",选择"maven-archetype-webapp"。给项目命名。

查看目录结构

因为我们创建该项目作为父项目,之后会在其中创建模块(module),父项目本身不需要src文件,所以删去src文件夹

pom.xml:相当于较早版本中的web.xml,里面是项目的配置信息,包括<properties><dependencies>的配置。子模块会继承父项目的配置。

2)创建子模块

右键选中父项目,再选择"New Module"。后续与父项目相同。创建完成后:

image-20210429111931624

修改子模块中的"web.xml"文件

狂神的视频里如图修改了,不过我修改错了地方,导致这里最后没改,最后也可以正常运行。就没手打出来,直接截的图。

补全main文件夹

在main文件夹下新建"java"、"resources"文件夹,并且右键选择"Mark Directory as",java文件夹选择"Sources Root"(源码目录);resources选择为"Resources Root"(资源目录)。

3)创建Servlet

先在java文件夹下新建一个Package,命名为edu.cara.servlet(举例)。再在这个package下新建Class,类要继承HttpServlet。为了便于识别,将servlet命名为HelloServlet

添加依赖

此时IDE会报错,提示"Cannot resolve symbol 'HttpServlet'",因为我们还没有在maven项目中导入依赖。

到Maven仓库Maven Repository搜索“servlet”,找到我们需要的依赖:

点击第一个:

选择一个使用人数较多的版本,比如4.0.1。点进,复制它提供的依赖:

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

上述依赖粘贴到父项目的pom.xml中(这样其他子模块也可以使用该依赖了),找到<dependencies>所在部分,将依赖粘贴进去:

此时javax.servlet-api字样还是红色。我们需要在编辑框右上方找到该图标,加载Maven更新:

或者是右键项目,找到Maven,选择"Reload project":

加载更新后,Maven会自动下载需要的包到仓库中,以供调用。回到servlet类,用Alt+Enter键补全:

写到这儿,我才发现可以直接在这里选择"Add Maven dependency"添加依赖...往后可以略去以上步骤。可以当做掌握Maven依赖导入的原理

导入依赖完成:

编写Servlet

我们简单编写一个能在页面输出"Hello,Servlet"的Servlet:

package edu.cara.servlet;

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

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Hello,Servlet");
        PrintWriter writer = resp.getWriter();
        writer.print("Hello,Servlet");
    }
}

Servlet的映射

编辑子模块的web.xml文件,给新建的servlet添加如下映射:(这里用的还是传统的修改xml文件的方式,后续学习更深入,还会有通过注解进行映射的方式)

<web-app>
    
  <!--注册servlet-->
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>edu.cara.servlet.HelloServlet</servlet-class>
  </servlet>
  <!--servlet的请求路径-->
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
    
</web-app>

4)启动服务

完成项目内容的编写后,我们想要启动服务器,并能通过浏览器访问servlet。

配置服务器,打包子模块

在IDEA右上角找到"Add Configuration...":

进入,点击左上角的"+"号,找到并选择Tomcat:

配置如下(如果你之前配置好了,这里会沿用。没有就选成符合你自己环境的),大致检查没什么问题,就点击右下角的Fix:

选择"Artifact...":

选择"servlet-01:war",打包子模块(注意不要选成父项目了),确认(OK):

启动服务器

配置完成后,右上角变为这样:

点绿色的"Run"开始运行。

打开浏览器,访问localhost:8080/servlet_01_war/hello,可以看见页面上成功输出的"Hello,Servlet"

在控制台也能看见输出了Hello,Servlet。

到此,如何使用IDEA创建Maven项目,如何编写Servlet、导入依赖、添加映射,最后如何启动服务器并访问,都讲完啦。

posted @ 2021-04-29 14:04  西瓜橙子  阅读(570)  评论(0)    收藏  举报