2

我尝试使用 NetBeans 创建简单的 servlet 项目,并从登录开始。登录页面是在 html 中完成的,它与 NetBeans “Web pages” floder(目录结构中的 web)中的 css 文档存储相同。

在 NetBeans 中存储文件的方式

如果我尝试使用它来查看页面,那么在包含 css 的情况下一切正常。但是,如果我尝试运行此文件( shift + F6 ),浏览器中会出现错误,说明重定向失败。 打开html页面时出错

如果我尝试在 jsp 页面中使用 css 文件,也会出现类似的失败。虽然我在 jsp 页面中的所有 html 文本都很好,并且如果我使用纯 html 页面它可以工作,但在 jsp 页面 css 中不起作用。为了解决这个问题,我尝试使用两台服务器,Glassfish 和 Apache Tomcat,它们都无法正常工作。我刚刚也尝试检查几个相似的主题,但是将 css 包含到 jsp 的描述不起作用。下一个任务,我有通过 response.sendRedirect() 函数重定向到登录页面。如果我尝试重定向到 jsp 页面,它可以正常工作(不包含 css),但是如果我尝试重定向到 html,它不会出现如上所示的相同错误。存储为 sendRedirect() 函数参数的无效地址也会发生同样的失败。

在 JSP 文件中引用放置在 WEB-INF 文件夹中的资源会在资源上返回 HTTP 404

我认为,Web 服务器根本不知道网页和 css 文件的适当地址。有没有办法将它添加到 web.xml 或其他地方来查看 html 页面?如果还有其他故障,我该如何解决?如何将一些外部 css 文件添加到 jsp 页面?

非常感谢您的回复!

在 ArtyMcFly 回复后添加:感谢您的回复。我尝试了您在回答中描述的所有内容。我的 web.xml 现在看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

 //This is changed code from MartyMcFly   
    <servlet>
    <servlet-name>errorPage</servlet-name>
    <jsp-file>/WEB-INF/errorPage.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>errorPage</servlet-name>
    <url-pattern>/errorPage</url-pattern>
</servlet-mapping>


    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>Controler.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/TestServlet</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

我还更改了 servlet 中的链接。至

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

我的 css 文件现在存储在 Web Pages/css/main.css 下。但没有任何作用。

在获得 10 分之前,我无法添加屏幕截图。这是一些服务器策略...

PS:因为我现在有10多点,我刚刚添加了一些打印屏幕解释情况。

4

1 回答 1

0

EDIT 删除了初始响应,因为它对这种情况没有帮助,以下是部署描述符(web.xml)和文件结构中的 css 和 jsp 的工作设置

我查看了我的一个 netbean 设置,我的结构如下所示:

/WEB-INF/jsp/*all my jsp pages*
/css/*css pages*

部署描述符 (web.xml) 如下所示:

<servlet>
    <servlet-name>jsppage1</servlet-name>
    <jsp-file>/WEB-INF/jsp/jsppage1.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>jsppage1</servlet-name>
    <url-pattern>/jsppage1</url-pattern>
</servlet-mapping>

我在jsp中包含了css,代码如下:

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

所以代码中发生的事情是将 URL 地址 /jsppage1 映射到 WEB-INF 文件夹中的文件,并且就 jsp 文件而言,它被存储在项目的根目录中,即使它在WEB-INF 的文件结构。

于 2013-07-20T09:43:40.013 回答