重定向没有特定参数的页面 Java JSP

Redirect a page without a particular parameter Java JSP

正如标题所说,如何在没有附加特定参数的情况下重定向页面 URL?例如,我有一个页面 "file.jsp",它应该从它的调度程序中获取一个参数,比如说 "fileid"。所以 URL 的形式是 "file.jsp?fileid=123"。如果有人请求页面(或输入)"file.jsp",但没有文件 ID,则该页面应该被重定向到主页。我可以在这里使用过滤器吗?

如果您在 Servlet 中请求 fileid 并且如果 fileid==null 则重定向用户怎么办?

类似于:

Object fileid = request.getParameter("fileid");

if(fileid == null)
{
  ReuqestDispatcher dispatcher = request.getRequestDispatcher("whatever.jsp");
  dispatcher.forward(request, response);
}

是的,你可以:-)。但是,确保使用其参数调用 JSP 的更常见方法是将其隐藏在 WEB-INF 文件夹下,并且仅从 servlet forward 到它。

这样一来,如果用户直接在其浏览器中输入 file.jsp,则会收到页面未找到错误 - 您可以重定向到特定页面。

如果你有一个只有 JSP 的网络应用程序(但你不应该用于一个严肃的项目......)的另一个解决方案是在 JSP 的开头进行测试,它将转发或重定向到另一个页面。像这样的东西:

<c:if test="${empty param.fileid}" >
    <jsp:forward page = "/"/>
</c:if>

有关如何从 JSP 进行重定向的示例,请查看 this other question