Перенаправить все страницы на главной странице

StackOverflow https://stackoverflow.com//questions/24055314

  •  23-12-2019
  •  | 
  •  

Вопрос

У меня есть веб-приложение, которое включает в себя несколько страниц JSP.И моя домашняя страница приветствуется.jsp, а URL приложения похоже на www.test.com

Так, когда пользователь ударил URL (www.test.com), он перенаправляет на www.test.com/welcome.jsp

Теперь я хочу, если пользователь напрямую хочет получить доступ к любой другой странице, такую как www.test.com/*.jsp, она всегда должна перенаправлять на свою домашнюю страницу, которая www.test.com/welcome.jsp

Пожалуйста, дайте каждому предложению о том, как это сделать.

Это было полезно?

Решение

Вы можете добавить следующее сопоставление на ваш 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>
.

Это будет сопоставлять все запросы на файл .jsp, чтобы welcome.jsp.

Редактировать:

Если вы хотите перенаправить только пользователей, если они еще не были в JSP приветствия, не используйте код выше в файле Web.xml.Вместо этого в вашем JSP установите флаг на сеансе пользователя в Weways.jsp:

<c:set scope="session" var="sessionStarted" value="true"/>
.

Затем добавьте создать фильтр, чтобы перенаправить их, как этот генеракодицетагCode:

@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);
    }
}
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top