辛星jetty嵌入式开发第一篇:hello|辛星jetty嵌入式开发第一篇:hello jetty
本系列教程已经上传至github,感兴趣的朋友们可以star一下,附上传送门: https://github.com/xinxing0913/jetty-embed-demo。
随着微服务的流行,jetty扮演的角色也越来越重要,越来越多的人开始了解jetty和使用jetty。这里我们就来一系列的jetty嵌入式开发的教程,希望对读着朋友们有所帮助。
首先来解释一下什么叫嵌入式开发,这里和硬件没关系,我们这里的嵌入式开发指的是让jetty运行在我们的程序中。让jetty作为我们程序的一部分启动,而不是我们把自己的代码部署到jetty服务器上。
本系列的教程都是基于maven的,如果读者朋友们还不熟悉maven,可以搜索一下,基础的操作还是蛮简单的。
我们新建一个项目,然后在pom.xml中添加一下jetty-server这一个依赖项即可,不过这里为了方便朋友们操作,还是给出了所有的pom.xml文件,这里是整个pom.xml的文件内容:
4.0.0 com.mengzhidu
jetty9-demo
1.0-SNAPSHOT 9.4.7.v20170914
org.eclipse.jetty
jetty-server
${jetty.version}
然后我们新建一个App类吧,代码内容如下:
package com.mengzhidu.jetty.demo.x001;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 最简单的应用
* 这里我们定制了自己的处理器,即HelloHandler
* 这个处理器输出了一段内容,然后告诉服务器说处理完成
*
* 这里我们为了简单,把处理器和应用类写到一个文件中
* 在之后我们都会分开写的
*
* 使用方法:
* 1.启动这里的main方法
* 2.打开浏览器,输入localhost:8080
*/
public class App {
public static void main(String[] args) throws Exception{
// 我们监听的端口
int port = 8080;
// 新建一个服务器类,我们这里给它指定了端口
Server server = new Server(port);
// 设置处理器
server.setHandler(new MyHandler());
// 启动程序...
server.start();
server.join();
}
}/**
* 我们自定义的handler
* 它用于在终端输出一段文本信息
*/
class MyHandler extends AbstractHandler {public void handle(String s, Request request, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
// 设置字符集,避免乱码
httpServletResponse.setContentType("text/html;
charset=utf-8");
// 输出我们想要显示的问候语
httpServletResponse.getWriter().println("hello jetty,我是辛星 ^_^");
// 表示请求处理完成
request.setHandled(true);
}
}
【辛星jetty嵌入式开发第一篇:hello|辛星jetty嵌入式开发第一篇:hello jetty】这里我介绍一下核心概念:
- 我们的MyHandler集成了AbstractHandler,它重写了handle()方法,它这里主要做了三件事,第一件事就是设置字符集为utf-8,第二件事就是输出一段文本信息,第三件事就是设置为请求已完成。
- 我们创建一个Server类,这个类也是我们启动应用的类,这里我们制定了启动端口为8080,然后我们通过setHandler来设置处理器,这里使用了我们创建的MyHandler,然后我们使用server.start(); 和server.join(); 来接受用户的连接。
文章图片
访问页面.jpg
可以看到,我们的网页内容成功的展示了出来,至此我们的第一个jetty嵌入式应用就开发完毕了。
推荐阅读
- 嵌入式(编译内核、根文件系统等)
- 辛星2018年nio教程第四篇:ByteBuffer的加速技术
- 嵌入式-外设|DDR3基础详解
- SpringBoot中的嵌入式ActiveMQ
- 嵌入式电脑|Paddle Inference——基于python API在Jetson上部署PaddleSeg模型
- 嵌入式系统文件系统开发缓存的应用
- 原来,嵌入式BI方案的核心差异全在这,教你如何评估!
- Linux 分支 OpenWrt (嵌入式Linux系统)的自启动服务详解
- CasePlayer2-嵌入式软件的说明书制作及解析工具
- 嵌入式项目中打造自己的utils库-不同芯片的基础时空开销计算