gpt4 book ai didi

java - 重定向主页中的所有页面

转载 作者:行者123 更新时间:2023-12-01 12:53:13 24 4
gpt4 key购买 nike

我有一个 Web 应用程序,其中包含几个 jsp 页面。我的主页是welcome.jsp,应用程序网址就像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 中,在welcome.jsp 中的用户 session 上设置一个标志:

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

然后添加创建过滤器来重定向它们,就像这样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);
}
}
}

关于java - 重定向主页中的所有页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com