Redirecionar Todas as Páginas de Página Inicial
Pergunta
Eu tenho uma aplicação web, que inclui algumas páginas jsp.E a minha página inicial é bem-vindo.jsp E a url do Aplicativo é como www.test.com
Assim, sempre que um usuário atingiu o url (www.test.com) ele redireciona para www.test.com/welcome.jsp
agora eu quero, se um utilizador directamente quer aceder a outra página, como www.test.com/*.jsp é sempre deve redirecionar para a página inicial que é www.test.com/welcome.jsp
Gentilmente, dar qualquer sugestão sobre como fazê-lo.
Solução
Você pode adicionar o seguinte mapeamento para o seu web.xml:
<servlet>
<servlet-name>welcome</servlet-name>
<jsp-file>welcome.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>welcome</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
Este mapa de todas as solicitações para um .arquivo jsp de boas-vindas.jsp.
Editar:
Se você deseja apenas redirecionar os usuários se eles ainda não tiver sido bem-vindo jsp, não use o código acima no seu web.xml arquivo.Em vez disso, no seu jsp definir um sinalizador na sessão do usuário no de boas-vindas.jsp:
<c:set scope="session" var="sessionStarted" value="true"/>
Em seguida, adicionar em criar Filtro para redirecioná-los como um presente RedirectFilter.java
:
@WebFilter("*.jsp")
public class RedirectFilter implements Filter {
public void destroy() {}
public void init(FilterConfig fConfig) throws ServletException {}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
Object sessionStarted = ((HttpServletRequest)request).getSession(true).getAttribute("sessionStarted");
if(sessionStarted==null){
request.getServletContext().getRequestDispatcher("welcome.jsp").forward(request, response);
}else{
chain.doFilter(request, response);
}
}
}