在Maven Web项目中通过Java代码启动内嵌的jetty

1. 在IDEA中,通过maven原型创建web项目

8263107-86a2469b7e89631b.png

  • 这里要注意,是要选择maven-archetype-webapp,而不是其他的。这个是最简单的web模版。

  • 然后一路next。

2.手动 添加java 目录,存放包。

在eclipse使用最基本的maven-web是可以直接创建出比较完善的目录结构的,但是IDEA不知为何没有创建出来。

 

8263107-9f410ce1b54dfc57.png

3.修改项目module

8263107-29e678c60b5fd874.png

  • java目录标记为source

    8263107-e2eff986f32299c5.png

  • 确定此位置正确,这样在webapp目录上会有一个蓝点标识

    8263107-74e1a2271c0c9320.png

  • 项目结构

     

    8263107-c01bbe25ba53c8a0.png

4.添加pom.xml依赖

主要依赖,没有其他的了。
注意,不能再引入tomcat的依赖,会出错!

 <dependency>
     <groupId>org.eclipse.jetty.aggregate</groupId>
     <artifactId>jetty-all-server</artifactId>
     <version>8.2.0.v20160908</version>
</dependency>

<dependency>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-jsp</artifactId>
     <version>8.2.0.v20160908</version>
</dependency>

5. 新建主类

8263107-bdf5fbb8171021a7.png

package top.belmode.starter;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

public class Main {

    public static void main(String[] args) {

        // 服务器的监听端口
        Server server = new Server(9999);
        // 关联一个已经存在的上下文
        WebAppContext context = new WebAppContext();
        // 设置描述符位置
        context.setDescriptor("./src/main/webapp/WEB-INF/web.xml");
        // 设置Web内容上下文路径
        context.setResourceBase("./src/main/webapp");
        // 设置上下文路径
        context.setContextPath("/");
        context.setParentLoaderPriority(true);
        server.setHandler(context);

        try {
            server.start();
            // server.join();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.err.println("Jetty-8.2.0 Server war started");
        System.err.println("请访问http://localhost:9999");
    }
}

6. 一个简单的index.jsp

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

7. 启动top.belmode.starter.Main,浏览器访问9999端口

8263107-04e1deeb6e62f7a8.png

结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值