java - Eclipse 是否会搞乱 Servlet/JSP 映射?

标签 java hibernate jsp servlets tomcat9

我正在为我的服务器使用 JPA/Hibernate 5.4.2、Java Servlet API 4.0.1 和 Tomcat 9 构建一个小型网站。我使用 Eclipse JEE 4.11 作为我的 IDE。

本质上,我在 Servlet 和 JSP 映射方面遇到了很多问题,但我不明白为什么。在一个实例中,我有一个特定的 JSP 文件,该文件拒绝承认其他 JSP 文件,即使它们都位于同一文件夹中。例如,除非我添加文件夹名称(例如“/jsp/Header.jsp”),否则它无法看到我的头文件(使用 包含)。但是,这样做会弄乱其他每个页面的 URL,从而阻止它们依次加载页眉和页脚。

据我所知,就好像应用程序切换目录来访问给定文件,但不知何故它永远不会恢复回来,因此其他 URL 路径变得无效,因为它们现在指向错误的位置。值得一提的是,这似乎不适用于我的标签,我必须使用相对 URL。

到目前为止,我已经通过在 URL 中添加 ${pageContext.request.contextPath} 前缀来解决了许多问题,但我遇到了这样的情况:在访问特定页面后,我的 URL 仍然会变得困惑。

我选择使用 web.xml 文件(位于“webapp/WEB-INF”中)来映射我的 JSP 和 Servlet,下面是每个文件的示例。请注意,Servlet 条目是由 Eclipse 生成的,但我使用相同的格式手动映射 JSP 文件。我已经仔细检查了 XML 文件以确保没有犯任何明显的错误,但我还没有发现任何错误。我在研究中发现的唯一一件事是映射的顺序可能很重要,但没有人真正提供有关它的具体信息。

我还尝试在 Eclipse 中清理我的项目、刷新项目(因为在这样做之前我遇到了应用程序无法识别视频文件的问题),以及清理 Tomcat 的工作目录。这些似乎都没有产生任何效果。

    <servlet>
        <display-name>ExerciseListServlet</display-name>
        <servlet-name>ExerciseListServlet</servlet-name>
        <servlet-class>web.ExerciseListServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ExerciseListServlet</servlet-name>
        <url-pattern>/ExerciseListServlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>UserProfile</servlet-name>
        <jsp-file>/jsp/UserProfile.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>UserProfile</servlet-name>
        <url-pattern>/UserProfile</url-pattern>
    </servlet-mapping>

有什么想法吗?我很清楚我没有以代码的方式发布太多内容,但是这个问题在某个时候几乎每个页面都发生过,而且事实上我上次使用时没有遇到这个问题这些系统告诉我 Tomcat、Hibernate 或 Eclipse 可能存在错误或配置错误。目前,我的系统由于完全不相关的原因引发异常,尽管我相信我知道原因,所以我现在不会包含它。

最佳答案

您只需删除 web.xml 文件的所有内容即可。删除所有 servlet 及其相应的映射。

然后你可以通过添加 WebServlet Annotation 使你的 Servlet 监听特定的 url。在您的代码中使用以下注释。

@WebServlet(urlPatterns = "/ExerciseListServlet", loadOnStartup = 1, displayName = "ExerciseListServlet")
@MultipartConfig

因此,每当您的 servlet 使用相关路径和显示名称时。

关于java - Eclipse 是否会搞乱 Servlet/JSP 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56799197/

相关文章:

java - 确定字节数组的实际内容

java - Android 应用程序在单击按钮时崩溃

java - 查找从文件读取的字母数字数组中的数字元素并将其写入新文件

java - hibernate 不返回新插入的记录

Java:无法使用 jdbc 从 servlet 的 doPost 插入数据

java - 如何向外部 API 发送 GET 请求并解析其 XML 响应?

java - 使用哈希密码时凭据不正确

java - HTTP 状态 404 : The requested resource is not available/Tomcat7

java - 如何使用主键自动增量在数据库中存储值列表

java - 在 JSP 页面中运行 .jar 文件