java 轻量级 httpserver_轻量级的java HTTP Server——NanoHttpd

本文介绍了NanoHTTPD,一个免费、轻量级的Java HTTP服务器,可嵌入Java程序,支持多种请求和文件上传,占用内存小。给出了github地址、maven依赖和官网demo,还展示了简单登录功能的实现,同时解决了post请求后台获取参数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小。

github地址:https://github.com/NanoHttpd/nanohttpd。

maven依赖:

org.nanohttpd

nanohttpd

2.2.0

官网demo:

packagecom.example;importjava.io.IOException;importjava.util.Map;importfi.iki.elonen.NanoHTTPD;//NOTE: If you're using NanoHTTPD >= 3.0.0 the namespace is different,//instead of the above import use the following://import org.nanohttpd.NanoHTTPD;

public class App extendsNanoHTTPD {public App() throwsIOException {super(8080);

start(NanoHTTPD.SOCKET_READ_TIMEOUT,false);

System.out.println("\nRunning! Point your browsers to http://localhost:8080/ \n");

}public static voidmain(String[] args) {try{newApp();

}catch(IOException ioe) {

System.err.println("Couldn't start server:\n" +ioe);

}

}

@OverridepublicResponse serve(IHTTPSession session) {

String msg= "

Hello server

\n";

Map parms =session.getParms();if (parms.get("username") == null) {

msg+= "

\n

Your name:

\n" + "\n";

}else{

msg+= "

Hello, " + parms.get("username") + "!

";

}return newFixedLengthResponse(msg + "\n");

}

}

运行App,浏览器打开http://localhost:8080/ 即可看到效果。

输入username,然后回车:

这样一个简单的登录功能就完成了。

问题:

如果form中指定action为post,你会发现后台session获取不到参数。

解决办法:

session.parseBody(newHashMap());

params= session.getParms();

意思也就是,对于post请求,你需要先调用parseBody()方法,直接传一个简单的新构造的map就行了,然后再调用getParams()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值