2014-06-05 2 views
0

웹 페이지가 거의없는 웹 응용 프로그램이 있습니다. 그리고 내 홈페이지는 환영합니다 .jsp 그리고 응용 프로그램 URL은 www.test.com과 같습니다.홈 페이지의 모든 페이지를 리디렉션합니다.

그래서 사용자가 URL (www.test.com)을 클릭하면 www.test.com/welcome.jsp로 리디렉션됩니다.

는 지금은 사용자가 직접 항상

www.test.com/welcome.jsp 내 홈 페이지로 리디렉션해야 www.test.com/*.jsp처럼 다른 페이지에 액세스하려고하면 원하는 친절하게 제안하는 방법에 대한 제안.

+0

는 javax.servlet.Filter의 당신이 알고 :

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

다음이 하나 RedirectFilter.java처럼 리디렉션 필터를 만들 추가하는 대신 JSP에 위해 welcome.jsp에서 사용자의 세션에 플래그를 설정 ? –

답변

1

당신은 당신의 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> 

이것은 위해 welcome.jsp하는 .jsp로 파일에 대한 모든 요청을 매핑합니다.

편집 :

가 이미 환영 JSP에 가본하지 않은 경우 당신이 당신의 web.xml 파일에 위의 코드를 사용하지 않는 사용자 만 재 지정하려면

.

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

환영 페이지에 있어도 페이지로 전환하지 못하게합니다. 내 의도는 사용자가 URL을 통해 직접 다른 JSP 페이지에 액세스하려고하면 환영 페이지로 되돌아 가야하는 것과 같습니다. 흐름은 시작 페이지에서 시작해야합니다. – Shibankar

+0

확인. 나는 지금 더 잘 이해한다. 더 나은 솔루션으로 내 대답을 업데이트하겠습니다! –

+0

고맙습니다. 귀하의 응답을 기다리고 있습니다. – Shibankar

관련 문제