【问题标题】:Difference when the servlet url is mapped with / as suffixservlet url 以 / 为后缀映射时的区别
【发布时间】:2014-08-04 13:46:30
【问题描述】:

我有问题。当我用/ 作为后缀映射我的servlet 的url 时,我没有得到css 样式表或javascript,而只有我的html 页面的文本。这真的很奇怪。例如

@WebServlet(name = "UserAreaServlet",
            urlPatterns = {"/user"})

这样我就得到了包含所有css和js资源的页面

同时

@WebServlet(name = "UserAreaServlet",
            urlPatterns = {"/user/"})

这样我只得到没有任何css或js的文本

为什么?

【问题讨论】:

  • 奇怪的是我看到了文字,但没有看到 css 和 js。我正在使用 java ee 7

标签: javascript html css servlets


【解决方案1】:

之后的斜线使它像一个改变相对路径的目录。

假设我的结构是:

webapps
  --myapp
     --css
        --style.css
     --servlet

servlet 到 css 的相对路径是 /css/style.css(因为 servlet 被视为直接在 myapp 下的文件)

webapps
  --myapp
     --css
        --style.css
     --servlet/

servlet/到css的相对路径是../css/style.css(因为servlet/被当作一个目录)

(我知道实际上,在文件系统上,您的 servlet 在 web-inf 等之下,但从 url 的角度来看,它直接在应用程序上下文之下,如上图所示)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 2012-01-20
    相关资源
    最近更新 更多