为什么我的glassfish intellij项目没有“看到”我的页面(jsp/css)?

gwbalxhn  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(269)

我正在使用intellij ultimate和glassfish服务器开发一个web应用程序,我已经设置了多个servlet和静态页面,但这些都不起作用。它们都返回404个错误。有一次jsp页面可以工作,但是照片和css根本无法加载。以下是我现在使用的项目结构:
我的所有页面都在“webapp”文件夹下,据我所知,当应用程序启动时,该文件夹将成为基本根目录(contextpath)。我还为css文件和照片设置了单独的文件夹。
我的servlet和页面的关系如下:使用“web.xml”文件中指定的url模式标记调用servlet,然后使用requestdispatcher给出jsp页面的响应。我的主页就是一个例子,它的静态文件名为“home.jsp”。下面是它在web.xml文件中的条目:

<servlet>
    <servlet-name>homeServlet</servlet-name>
    <servlet-class>com.example(this isnt my real class path but im sure its right)</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>homeServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

下面是它的获取方法:

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
{
    LOGGER.log(Level.WARNING,request.getContextPath() );
    request.getRequestDispatcher(request.getContextPath() + "/pages/home.jsp").forward(request, response);

}

下面是css在实际的“home.jsp”页面中的链接方式。

<link rel="stylesheet" href= "${pageContext.request.contextPath}/css/styleHome.css">

重申一下,当我使用Map调用servlet时,它们返回404,但即使它随机返回正确的jsp页面,css和同一目录(webapp)中的其他项也返回404错误。我已经在网上研究了至少一个星期了,仍然没有结果。我已尝试对web app文件夹下的内容使用相对路径字符串和结果路径字符串。jsp出现的唯一时间是我对jsp名称使用相对路径时。所以不是 request.getRequestDispatcher(request.getContextPath() + "/pages/home.jsp").forward(request, response); 我曾经 request.getRequestDispatcher( "home.jsp").forward(request, response); 它非常有效。但是当我尝试为css文件使用相同的路径类型时,它仍然无法加载它们,考虑到它们在webapp文件夹下具有相同的路径布局,我认为这很奇怪。我不知道什么是错的,真的只能想到一些可能是错的事情-在我的servlet和jsp文件中使用“request.getcontextpath()”和“${pagecontext.request.contextpath}”是否正确-在我的示例代码中还有其他错误吗?我尝试过mvn清洗、重新 Package 等,但我也不确定这是否是问题所在。
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题