文档章节

eclipse使用maven快速构建一个javaweb工程

KuangCaibao
 KuangCaibao
发布于 2015/04/13 15:24
字数 622
阅读 112
收藏 0

1. eclipse导入一个maven工程

1.1 创建工程根目录 demo, 建立文件  demo/pom.xml,在 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/xsd/maven-4.0.0.xsd">
 
    <modelVersion>4.0.0</modelVersion>
    <groupId>kuangcaibao</groupId>
    <artifactId>demo</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>
    
</project>

到这里其实我们就建立了一个空的maven项目。

packaging 标签中的内容为 war,作用当maven执行 package 操作的时候,打包成 war 格式。

1.2 将这个项目导入到 eclipse 中

File -> Import, 选择导入的工程类型为 Existing Maven Projects, 选择到我们的根目录,如下图

确定后工程导入成功。

1.3 编译项目

右键 demo 工程,执行 Run As -> maven install

这时会提示错误,因为打包 war 的时候,没有检查到 web.xml 文件的存在。同时自动在工程根目录下生成一些文件,如下图:

这里我们需要在 src/main/webapp/  下增加  WEB-INF/web.xml 文件。再次编译项目,成功。

2. 将空的Maven项目改造成一个JavaWeb项目

在上面,已经加入了 web.xml 文件,现在我们需要在我们的工程中实现一个 servlet 类,提供服务。

可以看到有错误,这是因为没有引入 javax.servlet 类,我们在 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/xsd/maven-4.0.0.xsd">
 
    ...
     <dependencies>
     	<dependency>
     		<groupId>javax.servlet</groupId>
     		<artifactId>javax.servlet-api</artifactId>
     		<version>3.1.0</version>
     		<scope>provided</scope>
     	</dependency>
     </dependencies>
</project>

重新编译,错误消除。这时我们再实现 servlet 的服务,在 web.xml 路由控制中指定我们的路由。代码如下

// Hello.java

package kuangcaibao;

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 Hello
 */
public class Hello extends HttpServlet {
	private static final long serialVersionUID = 1L;

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
	    PrintWriter out = response.getWriter();
	    out.println("Hello world!");
	    out.close();
	}

}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>kuangcaibao.Hello</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hw</url-pattern>
  </servlet-mapping>
</web-app>

3. 将工程放到Tomcat中运行

3.1 在eclipse中创建一个 Tomcat

3.2 运行工程

© 著作权归作者所有

下一篇: maven - 基础
KuangCaibao
粉丝 2
博文 21
码字总数 10699
作品 0
武汉
程序员
私信 提问
加载中

评论(1)

GZShi_alpha
GZShi_alpha
16期待更新!
使用maven创建javaweb项目

使用eclipse的maven创建项目,不管理是java项目还是javaweb项目都差不多,创建时有提示。这里以创建javaweb项目为例 打开新建项目选择maven project在选择类型时选择webapp 然后填入组织ID和...

独钓渔
2016/01/16
990
0
Maven 快速指南(一)

概念 Maven是什么 Maven 是一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西。 版本 maven有自己的版本定义和规则。 构建 maven支持许多种的应用程序类型,对于每一种支持的应用...

静默虚空
2017/11/10
0
0
怎么像maven工程一样设置普通Java工程的目录

都知道maven具有管理Java或者Javaweb的功能。我个人尤其看中的是其代码层次的分离。不同的代码在不同的文件夹下。这是在eclipse新建一个普通的工程无法实现的。而如果用maven实现有时候显得有...

追风赤兔
2016/02/25
1K
0
实现自己的控制层do-c (仿Struts2和SpringMVC)(五)

在开始之前我们先看一段代码: 执行后会输出 那么我们来关注一下fun()方法,该方法有两个参数,字符串型的text,整形的num。当main()方法调用它的时候就把haha和123这两个值传给了fun()方法,...

valuetodays
2016/07/05
28
0
Maven使用笔记(六)使用Maven进行多模块拆分

模块拆分是Maven经常使用的功能,简单梳理一下如何使用Maven进行多模块拆分, 只做归纳总结,网上资料很多,不再一步一步实际创建和部署。 建立Maven多模块项目 一个简单的Java Web项目,Mav...

范大脚脚
2017/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部