Java servlet - 导航到页面

标签 java jsp servlets

我有以下项目结构:

enter image description here

我正在尝试从 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 将打开,我会得到

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个解决方案

  1. 如果您不使用 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/

    相关文章:

    java - 销毁 session

    java - JSP - 文件名、目录名或卷标语法不正确

    java - 命名字符串字段上的 Guice 注入(inject)

    java - 如何从原生View获取属性

    java - 查找网页内容的实际路径

    java - 在 Amazon AWS 上托管 java servlet

    java - 将excel代码写入数据库

    java - Android:jar 库与项目库相比不起作用

    java - 停止播放音频/广播并取消返回主屏幕的通知控制,音乐停止,通知停止,前台服务不起作用

    java - 在 Spring 中用另一个 Controller 重置 Controller