共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>

这会将所有对.jsp文件的请求映射到welcome.jsp。

编辑:

如果您只想在尚未访问过欢迎的jsp的用户上进行重定向,请不要在web.xml文件中使用上面的代码。而是在您的jsp中,在welcome.jsp中的用户会话上设置一个标志:

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

然后添加create Filter来重定向它们,如下所示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);
    }
}
}
2020-06-08