2012-01-21 2 views
0

Я хотел бы поймать определенный шаблон url и перейти к одной статической странице. Так что, если я вижу одно из следующих действий:Как уловить URL-адреса и перенаправить на статическую страницу?

http://www.example.com/students?name=bob 
http://www.example.com/students?name=mary 
... 

, то я хотел бы направить на статическую страницу, как:

http://www.example.com/studentsTemporaryPage.jsp 

Есть ли что-то я могу добавить в мой файл web.xml для перенаправления любой из приведенных выше шаблонов (где имена параметров при изменении могут меняться) на мою статическую страницу?

Я использую механизм Google для Google (java), но думаю, что это может быть одинаково для любого сервлет-сервера?

Спасибо

ответ

1

Создание вперед сервлет:

public class ForwardServlet extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     String name = request.getParameter("name"); 
     // you can do some manupulations based on 'name' here 
     String target = "/studentsTemporaryPage.jsp"; 
     RequestDispatcher dispatcher = getServletContext() 
      .getRequestDispatcher(target); 
     dispatcher.forward(request, response); 
    } 
} 

затем сопоставьте его /students

<servlet> 
    <servlet-name>ForwardServlet</servlet-name> 
    <servlet-class>com.packagename.ForwardServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>ForwardServlet</servlet-name> 
    <url-pattern>/students</url-pattern> 
</servlet-mapping> 
+0

Прекрасно работает, спасибо. – user291701

0

Карта сервлет или фильтр для /students, и сделать этот сервлет или фильтр перенаправлять на статическую страницу, используя response.sendRedirect() (если вы хотите редирект), или вперед к JSP с использованием запроса диспетчеру (если вы хотите переслать).

Переслать и перенаправить две разные вещи. Решите, какой вы хотите.

Смежные вопросы