我有以下项目结构:
我正在尝试从 index.jsp 导航到 concerts.jsp:
index.jsp
<li class="active"><a href="/ConcertsController">Concerts</a></li>
这是我的 ConcertsController:
@WebServlet("/ConcertsController")
public class ConcertsController extends HttpServlet {
private static final long serialVersionUID = 1L;
public ConcertsController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
request.getRequestDispatcher("/WEB-INF/pages/concerts.jsp").forward(request, response);
}
...
}
当我运行应用程序并单击 index.jsp 中的链接时,localhost:8080/ConcertsController URL 将打开,我会得到 p>
The requested resource is not available
错误。
编辑 1:我正在使用 Tomcat v7.0、servlet v3.0 和 Java 8。
编辑 2(可能重复):嗯,我当然需要能够在不使用 jSTL 库的情况下完成此操作。
编辑 3: 当 localhost:8080/ConcertsController 打开时,我收到“找不到资源”错误。但是当我手动编辑 url 到 localhost:8080/AppName/ConcertsController 时,它就可以工作了。
最佳答案
网址 localhost:8080/ConcertsController
表示应用程序名称为 ConcertsController
,端口号为8080
并且该应用程序在本地运行。但你没有ConcertsController
应用。
所以你会收到错误
The requested resource is not available
有2个解决方案
- 如果您不使用 JSTL。
更改<a href="/ConcertsController">
至<a href="<%${pageContext.request.contextPath}%>/ConcertsController">
- 如果使用 JSTL,则
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
进而 更改<a href="/ConcertsController"> to <a href="${contextPath}/ConcertsController">
关于Java servlet - 导航到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47664571/