十二、栗子
12、使用举例
简单服务启用
- 默认配置参数如下:
host = "0.0.0.0";
port = 28080;
timeout = 30;
contextPath = "WEBAPP";
characterSet = "UTF-8";
sessionContainer = "java.util.Hashtable";
sessionTimeout = 30;
keepAliveTimeout = 60;
accessLog = true;
monitor = false;
gzip = true;
支持Steam 形式的服务调用,不依赖 conf
目录中的配置文件,在没有配置文件的时候也可以启动服务。
同时静态文件的访问也会无法被支持,如果需要支持静态文件访问需要 conf/mime.json
文件存在。
- 代码:
package org.voovan.test.http;
import org.voovan.http.server.WebServer;
import java.io.IOException;
/**
* Http简单服务测试类
*
* @author helyho
* <p>
* Java Framework.
* WebSite: https://github.com/helyho/Voovan
* Licence: Apache v2 License
*/
public class simpleHttpServerDemo {
public static void main(String[] args) {
WebServer.newInstance(20001).get("/test",(req,resp)->{
resp.write("this is test Message.");
}).serve();
}
}
常规服务启用
- 依赖
conf
目录中的配置文件
//构造 HttpServer 对象,使用配置文件的配置构造一个 HTTPServer,也可以使用默认构造函数构造.
WebServer httpServer = WebServer.newInstance();
//普通 GET 请求样例
httpServer.get("/", (req, resp) -> {
resp.write("我是测试小消息");
});
//带路径参数的 GET 请求样例
httpServer.get("/:name/:age", (req, resp) -> {
//req.getParameter("name") 获取请求路径中的name参数
//req.getParameter("age") 获取请求路径中的age参数
resp.write("我是测试小消息");
});
// 重定向 请求样例
httpServer.get("/redirect", (req, resp) -> {
resp.redirct("http://www.baidu.com");
});
//POST 请求样例
httpServer.post("/", (req, resp) -> {
resp.write("我是测试小消息");
});
//WebSocket请求样例
httpServer.socket("/websocket", new WebSocketBizHandler() {
@Override
public ByteBuffer onRecived(HttpRequest upgradeRequest, ByteBuffer message) {
//收到的消息
String msg = new String(message.array());
//返回消息
return ByteBuffer.wrap(msg.getBytes());
}
@Override
public void onOpen(HttpRequest upgradeRequest) {
Logger.info("WebSocket connect!");
}
@Override
public void onClose() {
Logger.info("WebSocket close!");
}
});
//HttpServer服务启动
httpServer.Serve();