Eclipse 中建立 Maven Web项目

Eclipse 中建立 Maven Web项目

软件版本

  • Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1) Build id: 20150924-1200
  • Maven 3.3.3
  • Servlet 2.5
  • tomcat 1.6+
  • jdk1.6+

本文将定Eclipse已配置好 jdk 和 tomcat

eclipse中的maven web项目包含两种配置:maven项目web项目,所以有两种方式建立maven web项目,即
- 先建立maven项目,再转成web项目
- 先建立web项目,再转成maven项目

由于先建立web项目的方式相对比较麻烦,本文只介绍先建立maven项目,再配置的方式建立maven web项目

1. 建立Archetype为web的maven项目

1.1 打开Eclipse,Ctrl + N 弹窗新建向导, 如下图
Alt text

1.2 在搜索框中输入 maven project
Alt text)

1.3 选择 Next
Alt text

1.4 选择 Next
这里写图片描述

1.5 在Fileter 右边的搜索框中输入web,并选中出现的配置,Next
这里写图片描述

1.6 输入好信息后,点击Next
这里写图片描述

1.7 至此,一个初始的maven web项目就建好了,目录结构如下
这里写图片描述

2. 在Java Resources文件夹中建立标准的maven目录结构

可以看到Java Resources文件夹中只有一个src/main/resources,这并不符合maven的默认结构,所以需要在其中建立起src/main/java, src/test/java , src/test/resources 源码文件夹。

2.1 去掉隐藏的“missing”文件夹

  • 选中项目名,右键,选择 Build Path -> Configure Build Path
    这里写图片描述

  • 将带有missing的文件夹选中并Remove掉(如果你有洁癖,也可把那个src/main/resources也删掉,然后一块重建)
    这里写图片描述

  • 点击右下角的OK

2.2 建立标准的maven项目目录结构

  • 选中项目结构中的Java Resources文件夹,右键,选择New -> Source Folder
    这里写图片描述
  • 点击Project name右边的Browse按钮,选择刚才建立的项目
  • Folder name中输入src/main/java,点击Finish按钮
  • 按照上述方法,一次建立src/test/javasrc/test/resources文件夹

最后的目录结构
这里写图片描述

3. 配置项目的 Web Deployment Assembly

这是比较关键的一步!

  • 选中项目名,右键,选择底部的Properties
  • 找到Deployment Assembly,并点击
    这里写图片描述

  • 依次选中并Remove掉上图中的src/test/java src/test/resources /target/m2e-wtp/web-resources三个目录,最终形成下图的结构
    这里写图片描述

  • 点击右下角的OK


至此,一个可成功部署的、符合maven风格的maven web项目就建立起来了!
这里写图片描述

4. 测试

为了检验建立项目是否成功,需要进行简单地测试。这里通过建立一个servlet类和一个jsp页面来测试。

4.1 配置pom.xml,导入servlet-api

为了不在编译期让Eclipse报错,需要配置一下pom.xml将servlet的jar包导进来

  • 加入servlet-api包:将下面的代码写入复制进pom的<dependency>节点
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
  • pom.xml的配置为
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zdwei.web</groupId>
    <artifactId>maven-web</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>maven-web Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>maven-web</finalName>
    </build>
</project>

4.2 新建一个servlet类:test.HelloWorld.java

通过Eclipse的新建servlet向导src/main/java建立test.HelloWorld.java(先建立test包,再建立servlet类

向导生成的servlet代码

package test;

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

/**
 * Servlet implementation class HelloWorld
 */
public class HelloWorld extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public HelloWorld() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

可以看到doGet方法中的代码是将"Served at: " + request.getContextPath()字符串作为相应返回到前端页面

4.3 新建一个JSP页面

将已存在的index.jsp页面删除,通过向导重新建立index.jsp页面,修改代码如下

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    Hello World!
    <a href="http://localhost:8080/maven-web/HelloWorld">request.getContextPath()</a>
</body>
</html>

4.5 执行测试

  • 选中项目名,右键,Run as -> Run on Server,浏览器会自动跳转到index.jsp页面,如下图
    这里写图片描述

  • 点击request.getContextPath()超链接,结果:
    这里写图片描述

测试结果符合预期!


成功建立Eclipse中的Maven Web项目!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值