【问题标题】:Pages resources such as css or javascript are not retrieved when Servlet uses sub pathServlet使用子路径时不检索css或javascript等页面资源
【发布时间】:2014-08-04 14:16:51
【问题描述】:

这是我的 Servlet

@WebServlet(name = "UserAreaServlet",
            urlPatterns = {"/user/",
                           "/user/info",
                           "/user/update",
                           "/user/updated",
                           "/user/remove",
                           "/user/removed"})
public class UserAreaServlet extends HttpServlet
{
    @EJB
    private UtilBeanInterface utilBean;
    @EJB
    private UserManagerBeanInterface userManagerBean;

    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {
        String userPath = request.getServletPath();

        if(userPath.equals("/user/"))
        {
                      request.getRequestDispatcher("/WEB-INF/view/userarea/userarea.jsp").forward(request, response); 

        }

        if(userPath.equals("/user/info"))
        {

        }

        if(userPath.equals("/user/update"))
        {


        }

        if(userPath.equals("/user/remove"))
        {
        }

        if(userPath.equals("/user/removed"))
        {

        }
    }

我有问题。当我转到 /user/info 或 /user/update 时,我得到了页面,但没有链接到它的资源,例如 css 或 javascript。为什么?我正在使用 java ee 7

【问题讨论】:

  • 请提供更多关于您的实际问题的详细信息。你的资源是如何打包的?您如何访问您的资源以及究竟发生了什么?
  • 我想知道是否真的可以做到我的意思。以这种方式调用各个页面是正确的?
  • 不确定您到底在问什么。是how to redirect from servlet to jsp page吗?

标签: java javascript html css servlets


【解决方案1】:

文件引用必须参考 servlet 上下文来定义,也就是说,在您的 html 代码中只引用 css 和 js 文件,而不考虑 html 文件上下文而是 servlet 。

例如,假设有以下情况:

  • html”文件夹包含 myHtml.html 文件
  • css”文件夹包含 myCss.css 文件
  • template”文件夹包含“html”和“css”文件夹
  • servlet”文件夹包含与 myHtml.html 相关的 servlet

为了在“myHtml.html”中包含“myCss.css”,您将拥有写:

<link type="text/css" rel="stylesheet" href="../template/css/myCss.css">

而不是:

<link type="text/css" rel="stylesheet" href="../css/myCss.css">

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    相关资源
    最近更新 更多