Вы можете использовать оператор запроса $regex
для проверки каждого отдельного регулярного выражения. Вы можете сделать перекрестную ссылку на результаты через запись code
, чтобы увидеть, есть ли она в нескольких результатах:
const regexes = [
/AA*AFO/,
...
];
const results = {};
regexes.forEach(async (regex) => {
results[regex] = await db.collection.find(
{
code: {
$regex: regex
}
});
});
Он не устанавливает соединение с браузером - браузер уже установил соединение на сервер. Он либо буферизует то, что вы записываете в память, а затем передает данные в конце запроса, либо проверяет, все ли заголовки были записаны в сетевое соединение, а затем возвращает PrintWriter
, который записывает данные напрямую. к этому сетевому соединению.
В сценарии буферизации может быть фиксированный размер буфера, и если вы превысите его, записанные данные будут «сброшены» в сетевое соединение. Большим преимуществом наличия буфера является то, что если что-то пойдет не так, вы можете изменить свой ответ на страницу с ошибкой. Если вы уже начали писать ответ, когда что-то идет не так,
Одна довольно простая реализация:
PrintWriter getWriter() throws java.io.IOException {
return new PrintWriter(socket.getOutputStream());
}
Также обратите внимание, что доступно несколько реализаций API-интерфейса сервлета с открытым исходным кодом. Это позволяет вам увидеть, как это можно сделать.
Я считаю, что официальная реализация также была с открытым исходным кодом и включена в сервер Glassfish.