Помогите создать сервлет изображения с помощью Spring - PullRequest
0 голосов
/ 01 ноября 2010

Я создаю приложение JSF, и у меня есть куча изображений (аватаров), хранящихся в моей БД в виде больших двоичных объектов.Я пытаюсь создать сервлет, чтобы я мог вызвать URL, такой как "/ imageServlet? 123, и он вызовет мой сервлет, передаст 123 в качестве идентификатора и т. Д. И т. Д. И выведет поток.

Я очень новичок вВесна, но я немного читал, и похоже, что мне нужно использовать MVC, но я не совсем понимаю, как должны выглядеть объявления классов и методов. Нужно ли использовать аннотацию @Controller? Мне действительно нужен приличный пример, поэтому яможет следить за ним и знать, куда поместить мой код.

В настоящее время мой класс объявлен так:

public class ImageServlet extends HttpServlet {
    ...
    @Override 
    protected void doGet(HttpServlet request, HttpServletResponse respose) {
      ...
    }
}

Я предполагаю, что это неправильно, но я не могу найти примеры того, как это сделатьВесной. Небольшое руководство будет очень признателен. Спасибо.

1 Ответ

6 голосов
/ 01 ноября 2010

Если вам не нужен доступ к контексту Spring, вы можете безопасно иметь сервлет, подобный тому, который вы показали. Вам просто нужно будет использовать request.getParameter("id") (с URL типа /imageServlet?id=123).

Однако, если вам нужен доступ к бобам Spring, чтобы вы могли получить пользователя, соответствующего переданному идентификатору, вы можете получить @Controller с помощью метода, подобного:

@RequestMapping("/image/{id}")
@ResponseBody
public byte[] getImage(@PathVariable int id) {
     // load the image into a byte array and return it
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...