Как я могу сопоставить Spring или RESTful как URL, используя стандартные сервлеты и web.xml - PullRequest
0 голосов
/ 09 января 2012

Я хотел бы иметь сопоставления URL-адресов, которые у меня есть с Spring Framework, как показано ниже в стандартной конфигурации сервлета web.xml.

 @RequestMapping(value="/students/{username}", method=RequestMethod.GET)
  public String deleteSpitter(@PathVariable String username) {
    ...
    ...
  }

Мне бы хотелось, чтобы эти URL отображались так:

/ студентов / Mike

/ студенты / John

для сопоставления с тем же сервлетом, где я также могу как-то прочитать «Майк» и «Джон» в качестве параметров. Если его можно расширить до более чем одного уровня, как в примере ниже, это может быть очень полезно для меня:

/ студентов / {schoolname} / {studentname} как:

/ студентов / МакГилл / микрофон

/ студентов / UBC / джон

Ответы [ 3 ]

1 голос
/ 09 января 2012

JAX-RS (он же Джерси ) может сделать что-то подобное с приложением сервлета (хотя не просто сервлеты)

1 голос
/ 09 января 2012

Вы можете сопоставить стандартный сервлет с подстановочным путем и получить доступ к части pathInfo запроса, используя метод HttpServletRequest.getPathInfo () .

Сервлет должен получить информацию о пути, напримерэто

package com.acme;

public class TestServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String info = request.getPathInfo();
    }

}

, и вы должны отобразить сервлет в своем файле web.xml следующим образом:

<servlet>
    <servlet-name>test-servlet</servlet-name>
    <servlet-class>com.acme.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>test-servlet</servlet-name>
    <url-pattern>/test/*</url-pattern>
</servlet-mapping>

Если вы запрашиваете URL '/ test / mcgill / mike', информация о пути будет'/ МакГилл / микрофон.Парсинг информации о пути зависит от вас.

Если вы работаете с контейнером, совместимым с Java EE 6, вам также следует взглянуть на спецификацию JAX-RS для создания веб-сервисов RESTful.

1 голос
/ 09 января 2012

Проверьте UrlRewriteFilter: http://www.tuckey.org/urlrewrite/

В примерах на http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/guide.html посмотрите на пример "Очистить URL".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...