public static void main(String[] args){
int port = 80;
HttpServer server = new HttpServer(port);
server.serve("/hello", Http.Method.Get, (req, resp) -> {
resp.write("Hello, TinyHttpServer")
});
server.start();
}
HttpServer(int port)
Самый простой конструктор для HttpServer, при этом количество рабочих потоков равно 2 * количеству доступных ядер процессора, плюс 2
HttpServer(int port, int threads)
Требует номер порта и количество рабочих потоков- public HttpServer(int port, int threads, int fileCacheSize, int cachedFileMaxSize);
В TinyHttpServer встроен LRU-кэш для файлов, который кэширует часто используемые статические ресурсы, чтобы избежать ввода-вывода с диска. Обычно размеры файлов HTML, CSS и JS, необходимых для веб-браузеров, находятся в пределах десятков до сотен килобайт, и хранение их в памяти является приемлемым. fileCacheSize указывает, сколько статических ресурсов должно быть вмещено в кэш. cachedFileMaxSize указывает максимальный размер файла, который будет кэшироваться. Файлы, превышающие этот размер, не будут кэшироваться.
void serve(String url, Http.Method method, HttpService service); где Http.Method
— это enum, содержащий значения: Http.Method.GET
, Http.Method.PUT
, Http.Method.POST
, Http.Method.DELETE
и Http.Method.ANY
.
Если в методе HttpServer.serve
передать Http.Method.ANY
, это эквивалентно регистрации для GET
и POST
методов.
Определение HttpService
:
public interface HttpService {
void serve(HttpRequest req, HttpResponse resp);
}
Этот интерфейс используется как функциональный, чтобы люди могли его реализовать.
Это означает, что метод method
можно использовать для доступа к интерфейсу, URL которого задан параметром url
, и определения действий, выполняемых для этого HTTP-запроса, в объекте HttpService
, а также возврата соответствующего HTTP-ответа.
void filter(String urlPattern, Http.Method method, HttpFilter filter);
urlPattern
означает, что он может быть использован не только как обычный строковый литерал, но и как простое регулярное выражение. filter
также представляет собой интерфейс с одним методом, определенный следующим образом:
public interface HttpFilter {
boolean filter(HttpRequest req, HttpResponse resp);
}
Метод HttpFilter.filter
возвращает булево значение, которое указывает, прошел ли запрос фильтрацию.
void staticResourceDir(String dir); Путь к директории с статическими ресурсами передается в метод, что позволяет статическим ресурсам в этой директории быть доступными по HTTP.
Получить объект HttpSession- setCookie(String key, String value)
Установить Cookie для следующего запроса от клиента
setCookie(String key, String value, int seconds)
Аналогично предыдущему, но с добавлением времени жизни
void forward(String url)
Перенаправить запрос на новый URL
String getParam(String paramName)
Получить параметр HTTP запроса
String getHeader(String headerName)
Получить значение по ключу HTTP заголовка
String getCookie(String cookieName)
Получить значение Cookie
String body()
Получить тело HTTP запроса
void setStatusCode(int code)
Установить код состояния ответа HTTP
void writeText(String content)
Записать строку данных в тело HTTP запроса, что заменит предыдущее содержимое
void writeText(String ...contents)
Записать несколько строк данных в тело HTTP запроса, что заменит предыдущее содержимое
void writeTextAppend(String content)
Добавить строку данных в конец тела HTTP запроса
void writeAsJSON(Object obj)
Записать объект Java в тело HTTP запроса, что автоматически преобразует его в формат JSON, пожалуйста, убедитесь, что объект имеет конструктор по умолчанию
void sendRedirect(String url)
Перенаправить запрос на новый URL
void sendRedirectPermanently(String url)
Постоянно перенаправить запрос на новый URL
void setHeader(String key, String value)
Установить строку заголовка ответа HTTP, что добавит её в конец
Object getAttribute(String key)
void setAttribute(String key, Object value)
public static void main(String[] args) throws IOException { HttpServer server = new HttpServer(80, 1); server.serve("/hello", Http.Method.GET, (req, resp) -> { resp.writeText("Привет", "мир"); }); server.serve("/home", Http.Method.GET, ((req, resp) -> { String name = req.getParam("name"); int id = Integer.parseInt(req.getParam("id")); String client = req.getHeader(HttpRequest.Header.UserAgent); resp.writeText("Это ваш дом, " + name + " id:" + id + " из " + client); })); }
сервер.начать();
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )