Task 9 report. В рамках данного задания были реализованы следующие сервлеты:
- LoginServlet/RegisterServlet - реализуют работу с юзерами. Пароли не хранятся в чистом виде, используется примитивное хэширование. При запросе на /login (method:post) данные отправляются как 2 параметра: login и password. При запросе на /register (method:post) данные отправляются в формате json c ключом "user"(Например:{"login":"login","password":"111"}).
- PhotoPostServlet - реализует работу с отдельными фотопостами по id.
В нем реализованы следующие функции:
-
doGet()
- url pattern - /post
- request example - http://localhost:8080/post?id=1
-
doPost
- url pattern - /post 
- post = {"description":"description", "author":"dmitry", "date":"2018-02-05"}
- file = file.jpg
Примечание: На ОС windows с файловой системой NTFS может быть проблема с сохранением файла (А может и с другим, понятия не имею как это фиксить во всех случаях) В таком случае нужно расскоментировать все "//TODO: NTFS FILESYSTEM fix" участки кода.
-
doDelete
- url pattern - /post
- request example - http://localhost:8080/post?id=1
- SearchServlet - реализует работу с коллекцией фотопостов.
В нем реализованы следующие функции:
-
doGet()
- url pattern - /search
- request example - http://localhost:8080/search?type=last&search=5
- type=last - получить последние загруженный n постов (search=n)
- type=author - получить фотопосты указанного автора (search=author)
- type=date - получить фотопосты по дате [формат даты: (yyyy-[m]m-[d]d)]
- type=hashtag - получить фотопосты по хэштегу, хэштэг должен быть без символа '#' (search=hashtag)
- ImageServlet - реализует получение картики по указанаму атрибуту src объекта
PhotoPost.
- url pattern - /image?path=src
- request example - /image?path=img/filename, filename - имя загруженного файла с расширением.