Я хочу создать очень простой сервлет, который будет читать данные, отправленные http в одной конечной точке URL, например:
http://localhost:8080/post
Затем потребуется:
1. authenicate the request based appId and userId that was posted
2. if authentication went ok, gather the form fields and save it to the db.
Этобудет очень простым сервлетом, на самом деле для этого не нужно каких-либо тяжелых фреймворков.
Возможно, у меня будет 10K-50K пользователей, и я не хочу выполнять поиск в базе данных для аутентификации.
Я просто хочу сохранить эту информацию в словаре / хэше, она должна быть поточно-ориентированной.
Если регистрируется новый пользователь, я должен иметь возможность аннулировать этот словарь в памяти и перезагрузить приложение/ пользовательские данные из mysql, но только если регистрируется новый человек.
Спецификации требуют, чтобы это работало под большой нагрузкой, до 5 000 запросов в секунду.
Я новичок в Java ипросто экспериментирую, как это можно сделать в java / servlets.
Как я могу иметь этот словарь в качестве поля статического типа, доступного для метода doGet моего сервлета, и в то же время иметь возможность повторно инициализировать его при присоединении нового пользователя.
Вот простой сервлет, который я хочу построить поверх:
package test;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloServlet extends HttpServlet {
public void doGet (HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out = res.getWriter();
out.println("Hello, world!");
out.close();
}
}
Пожалуйста, не принимайте от меня многого, фрагменты кода очень важны для настройки этого словаря.
Ключевым моментом, который я хочу понять, является настройка этого словаря, который можно использовать в моем сервлете для ответа на запросы и выполнения поиска, а также для начальной загрузки его из mysql, а затем для возможности его повторной инициализации в потоке.безопасным образом.