Перенаправить запрос сервлета на другой сервлет - PullRequest
0 голосов
/ 26 апреля 2018

В нашем приложении для всех уведомлений мы запускаем по почте.

Все шаблоны имеют ссылку не на sso > / Userlogin? Param1 = param2value & param2 = param2value "> Ссылка для доступа к приложению

Мне нужно изменить эту ссылку во всех шаблонах на

> / Userloginsso? Param1 = param2value & param2 = param2value "> Ссылка для доступа к приложению

Поскольку существует множество шаблонов, требующих больших ручных усилий, можно ли каким-либо образом перенаправить запрос Userlogin в Userloginsso. Любая конфигурация, которую мы можем сделать в web.xml?

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Учитывая, что у вас есть сопоставление для Userlogin в web.xml, как показано ниже:

<web-app>
    <servlet>
         <servlet-name>Userlogin</servlet-name>
         <servlet-path>com.something.Userlogin</servlet-path>
    </servlet>
    <servlet-mapping>
         <servlet-name>Userlogin</servlet-name>
         <url-pattern>/Userlogin</url-pattern>
    </servlet-mapping>
</web-app>

Изменить существующее сопоставление на:

<web-app>
    <servlet>
         <servlet-name>Userloginsso</servlet-name>
         <servlet-path>com.something.Userloginsso</servlet-path>
    </servlet>
    <servlet-mapping>
         <servlet-name>Userloginsso</servlet-name>
         <url-pattern>/Userlogin</url-pattern>
    </servlet-mapping>
</web-app>

Теперь все вызовы Userlogin будут перенаправлены на сервлет Userloginsso.

0 голосов
/ 26 апреля 2018

Если я правильно понимаю ваш вопрос, вы можете использовать фильтр пример здесь получить URL-адрес и переместить его в другое место в вашем приложении.Или и URL переписать библиотеку, такую ​​как us this

Если вы все еще хотите сервлет, вы можете использовать ProxyServlet.Уже есть много хороших реализаций.

Примеры:

Сложный прокси-сервлет со всеми функциями

Простой прокси-сервлет, ограниченные возможности

0 голосов
/ 26 апреля 2018

Вы можете сделать простое перенаправление в своем сервлете UserLogin с помощью следующего:

public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException {
    String param1 = request.getParameter ("param1");
    String param2 = request.getParameter ("param2");
    // other parameters 

    // Build the new url: if too much parameters, prefer using a StringBuilder over String concatenation for better performances 
    String baseUrl = request.getContextPath () + "/Userloginsso?param1=" + param1 + "&param2=" + param2;

    String encodedUrl = response.encodeRedirectURL (baseUrl);

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