Вызов сервлета из Spring Rest Controller и возврат изображения из сервлета - PullRequest
0 голосов
/ 14 июля 2020

У меня есть сервлет, который я использую для извлечения изображения из базы данных и отображения изображения для внешнего интерфейса.
Сервлет:

@WebServlet("/jsp/DisplayImage")
public class DisplayImage extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            int id = Integer.parseInt(request.getParameter("userId"));          
            User query = new User();
            //fetch user details
            .......

            //write user photo to response
            response.reset();
            response.setContentType("image/.*");
            OutputStream out = response.getOutputStream();
            out.write(user.getPhoto());
            out.close();
        } catch (Exception e) {
            .......
        }
}

Этот сервлет работает нормально.
Теперь я хочу создать rest api, который будет вызывать этот сервлет и возвращать фото пользователя:

@GetMapping("displayImage")
public void getDisplayImage(@RequestParam("userId") final Integer userId) {
    //TODO call DisplayImage servlet and return user photo
}

1 Ответ

0 голосов
/ 15 июля 2020

Я решил это перенаправлением на свой сервлет

@GetMapping("displayImage")
public void getDisplayImage(@RequestParam("userId") final Integer userId,
            HttpServletResponse response) throws IOException {
        
        String displayImageUrl="https://localhost:8443/app/jsp/DisplayImage?userId="+userId;        
        response.sendRedirect(displayImageUrl);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...