2013-04-15 3 views
0

Я пытаюсь создать базовое веб-приложение Java с помощью сервлета 3.0. Теперь мое приложение должно пройти через базовую страницу/форму установки, чтобы знать, где хранить файлы конфигурации и т. Д. Что было бы хорошим способом реализовать это?Перенаправление на установку, если конфигурация отсутствует

Я думал о фильтре, но так как я не могу сделать перенаправление, это кажется неправильным.

Предложения?

+0

вы имели в виду мастер? Вы видели, как WAR развертывается в Websphere? Вам нужно пройти через многие страницы. –

+0

Ну, это не волшебник. Просто простая форма с несколькими полевыми вводами. – Trj

+0

Вы можете сделать переадресацию изнутри фильтра. Нет проблем с этим. 'response.sendRedirect (...)', как и в сервлете. –

ответ

0

Кажется мне, что Filter будет большой подход к тому, что вы пытаетесь достичь:

@WebFilter 
public class ConfigFilter implements Filter { 
    @Inject 
    private SessionBean session; 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
     String requestURI = ((HttpServletRequest) request).getRequestURI(); 
     if(!session.hasConfig() && !requestURI.startsWith("/configWizard.xhtml")) { 
      ((HttpServletResponse) response).sendRedirect("/configWizard.xhtml"); 
     } 
     else { 
      chain.doFilter(request, response); 
     } 
    } 

    @Override 
    public void destroy() { 
    } 

    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { 
    } 
} 
+0

Да, это сработает, но мне также нужно будет проверить, что запрос не содержит «configWizard», иначе он пойдет в цикле? – Trj

+0

Если фильтр также сопоставлен с URL-адресом мастера настройки, то да, вы должны выполнить эту проверку. –

+0

Ofcourse Trj, мой плохой. Я соответствующим образом обновил ответ. – Aquillo

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