1.说明

本文介绍,在IDEA中,使用maven的方式,创建一个普通的java-web项目。

2.创建过程

2.1 使用maven的模板创建一个web项目

idea将maven项目切换成普通项目_idea将maven项目切换成普通项目


idea将maven项目切换成普通项目_intellij-idea_02


idea将maven项目切换成普通项目_tomcat_03


idea将maven项目切换成普通项目_idea将maven项目切换成普通项目_04


idea将maven项目切换成普通项目_idea将maven项目切换成普通项目_05

点击Finish后,等待完成项目的创建

idea将maven项目切换成普通项目_maven_06

2.2 完善目录结构

使用当前模板创建的项目的目录结构中只有webapp目录,
所以我们要自己按照maven的目录规范来完善目录结构。
方式非常的简单:直接右键创建目录即可。

2.2.1 完善前的目录

idea将maven项目切换成普通项目_tomcat_07

2.2.2 完善后的目录

idea将maven项目切换成普通项目_maven_08

2.2.3 设置目录的属性

经过 2.2.2 的操作后,项目还不完善,原因是上面的目录仅仅是一个文件夹,并不具备开发的属性
需要进一步将
src/main/java 目录设置为 Sources Root,即源码目录src/main/resources 目录设置为Resources Root,即资源目录src/test/java 目录设置为 Test Sources Root,即测试源码目录src/test/resources 目录设置为 Test Resources Root,即测试资源目录

设置的步骤非常简单,直接在对应的目录上右键,然后选择Mark Directory as,然后选择对应的类型即可。(四个目录都是同样的操作步骤)

idea将maven项目切换成普通项目_maven_09

设置完成之后的目录样子:文件夹是有颜色或者小图标的

idea将maven项目切换成普通项目_idea将maven项目切换成普通项目_10

2.3 完善项目代码

2.3.1 整理pom.xml并引入依赖

开发环境下需要引入 servlet和jsp的两个依赖。
完整的pom.xml文件如下:

<?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">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.northcastle</groupId>
  <artifactId>001-maven-web</artifactId>
  <version>1.0.0</version>
  <packaging>war</packaging>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <!-- 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>

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


  </dependencies>

</project>

2.3.2 准备两个jsp文件

由于模板中生成的index.jsp文件不是特别的完整,因此,我们选择删除掉,然后重新创建index.jsp.
然后再创建一个hello.jsp作为跳转的页面。

1.index.jsp : 一个超链接,发送一个get请求

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>maven-web 项目首页</title>
</head>
<body>

<h3>欢迎来到 maven-web 的简单项目首页 </h3>
<h4>哈哈哈,就是这个页面</h4>

<%--注意这里不能写成 /hello --%>
<a href="hello">点我去 HelloMavenServlet</a>

</body>
</html>

2.hello.jsp : 点击上面的超链接,就可以跳转到这个页面上

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>欢迎首页</title>
</head>
<body>

<h1>恭喜您!您已经成功搞定maven-web 的基础操作</h1>

</body>
</html>

2.3.3 写一个servlet

src/main/java 目录下 创建 com.northcastle.controller.HelloMavenServlet
主要是接收到一个请求,然后马上跳转到 hello.jsp 页面上

ackage com.northcastle.controller;

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


public class HelloMavenServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

	// 处理 get请求
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("HelloMavenServlet doGet ...");
        System.out.println("马上我们就跳转到 hello.jsp页面上");
        request.getRequestDispatcher("/hello.jsp").forward(request,response);
    }
}

2.3.4 配置web.xml文件

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  
  <!--  1.配置servlet及访问映射,和index.jsp中要对应起来-->
  <servlet>
    <servlet-name>HelloMavenServlet</servlet-name>
    <servlet-class>com.northcastle.controller.HelloMavenServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloMavenServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

  <!--  2.配置访问的首页,注意,这个配置一定要在 servlet的下面,否则会报错-->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>

至此开发的内容就结束了

2.4 配置运行时环境

  1. 添加一个tomcat的配置

idea将maven项目切换成普通项目_tomcat_11

2.完善tomcat的基本配置

idea将maven项目切换成普通项目_maven_12

3.指定要运行的项目

idea将maven项目切换成普通项目_maven_13


idea将maven项目切换成普通项目_javaweb_14


idea将maven项目切换成普通项目_tomcat_15


idea将maven项目切换成普通项目_tomcat_16


idea将maven项目切换成普通项目_javaweb_17

至此,运行环境的配置就结束了。

2.5 运行测试

idea将maven项目切换成普通项目_javaweb_18


idea将maven项目切换成普通项目_maven_19


idea将maven项目切换成普通项目_intellij-idea_20


idea将maven项目切换成普通项目_idea将maven项目切换成普通项目_21


idea将maven项目切换成普通项目_idea将maven项目切换成普通项目_22

3.完成

Congratulations!
You are one step closer to success!