• 十二、栗子
    • 12、使用举例
      • 简单服务启用
      • 常规服务启用

    十二、栗子

    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();