十二、栗子

12、使用举例

简单服务启用

  • 默认配置参数如下:
  1. host = "0.0.0.0";
  2. port = 28080;
  3. timeout = 30;
  4. contextPath = "WEBAPP";
  5. characterSet = "UTF-8";
  6. sessionContainer = "java.util.Hashtable";
  7. sessionTimeout = 30;
  8. keepAliveTimeout = 60;
  9. accessLog = true;
  10. monitor = false;
  11. gzip = true;

支持Steam 形式的服务调用,不依赖 conf 目录中的配置文件,在没有配置文件的时候也可以启动服务。

同时静态文件的访问也会无法被支持,如果需要支持静态文件访问需要 conf/mime.json 文件存在。

  • 代码:
  1. package org.voovan.test.http;
  2. import org.voovan.http.server.WebServer;
  3. import java.io.IOException;
  4. /**
  5. * Http简单服务测试类
  6. *
  7. * @author helyho
  8. * <p>
  9. * Java Framework.
  10. * WebSite: https://github.com/helyho/Voovan
  11. * Licence: Apache v2 License
  12. */
  13. public class simpleHttpServerDemo {
  14. public static void main(String[] args) {
  15. WebServer.newInstance(20001).get("/test",(req,resp)->{
  16. resp.write("this is test Message.");
  17. }).serve();
  18. }
  19. }

常规服务启用

  • 依赖 conf 目录中的配置文件
  1. //构造 HttpServer 对象,使用配置文件的配置构造一个 HTTPServer,也可以使用默认构造函数构造.
  2. WebServer httpServer = WebServer.newInstance();
  3. //普通 GET 请求样例
  4. httpServer.get("/", (req, resp) -> {
  5. resp.write("我是测试小消息");
  6. });
  7. //带路径参数的 GET 请求样例
  8. httpServer.get("/:name/:age", (req, resp) -> {
  9. //req.getParameter("name") 获取请求路径中的name参数
  10. //req.getParameter("age") 获取请求路径中的age参数
  11. resp.write("我是测试小消息");
  12. });
  13. // 重定向 请求样例
  14. httpServer.get("/redirect", (req, resp) -> {
  15. resp.redirct("http://www.baidu.com");
  16. });
  17. //POST 请求样例
  18. httpServer.post("/", (req, resp) -> {
  19. resp.write("我是测试小消息");
  20. });
  21. //WebSocket请求样例
  22. httpServer.socket("/websocket", new WebSocketBizHandler() {
  23. @Override
  24. public ByteBuffer onRecived(HttpRequest upgradeRequest, ByteBuffer message) {
  25. //收到的消息
  26. String msg = new String(message.array());
  27. //返回消息
  28. return ByteBuffer.wrap(msg.getBytes());
  29. }
  30. @Override
  31. public void onOpen(HttpRequest upgradeRequest) {
  32. Logger.info("WebSocket connect!");
  33. }
  34. @Override
  35. public void onClose() {
  36. Logger.info("WebSocket close!");
  37. }
  38. });
  39. //HttpServer服务启动
  40. httpServer.Serve();