Skip to content

denighte/BSU-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task 9 report. В рамках данного задания были реализованы следующие сервлеты:

  1. LoginServlet/RegisterServlet - реализуют работу с юзерами. Пароли не хранятся в чистом виде, используется примитивное хэширование. При запросе на /login (method:post) данные отправляются как 2 параметра: login и password. При запросе на /register (method:post) данные отправляются в формате json c ключом "user"(Например:{"login":"login","password":"111"}).
  2. PhotoPostServlet - реализует работу с отдельными фотопостами по id. В нем реализованы следующие функции:
      doGet()
      • url pattern - /post
      • request example - http://localhost:8080/post?id=1
      Возвращает объект фотопоста в формате json с указанным в запросе id. В случае ошибок (и во всех последующий сервлетах и методах) возвращает специальный объект Message в виде json ({"status":"?","data":"?"}). Для получения фотографии фотопоста нужно сделать дополнительный запрос на /image?path={src} , где src - атрибут объекта фотопоста. Будет переделана в Restful ссылку.
      doPost
      • url pattern - /post
      • ![picture](report/doPost.png)
      Позволяет загрузить фотопост на сервер в указанном формате. Запрос должен иметь следующие 2 ключа:
      • post = {"description":"description", "author":"dmitry", "date":"2018-02-05"}
      • file = file.jpg
      В случае успешной загрузки возвращает id фотопоста.

      Примечание: На ОС windows с файловой системой NTFS может быть проблема с сохранением файла (А может и с другим, понятия не имею как это фиксить во всех случаях) В таком случае нужно расскоментировать все "//TODO: NTFS FILESYSTEM fix" участки кода.

      doDelete
      • url pattern - /post
      • request example - http://localhost:8080/post?id=1
      Позволяет удалить фотопост по указанному id. В cлучае успешного удаления возвращает статус 200.
  3. 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)
  4. ImageServlet - реализует получение картики по указанаму атрибуту src объекта PhotoPost.
    • url pattern - /image?path=src
    • request example - /image?path=img/filename, filename - имя загруженного файла с расширением.
При разработке использовалсь база данных h2, не успел сделать инциализацию тестовых данных. Поэтому на старте база будет пустой.

About

Dmitry Radchuk 5-th group practice tasks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published