我尝试使用 NetBeans 创建简单的 servlet 项目,并从登录开始。登录页面是在 html 中完成的,它与 NetBeans “Web pages” floder(目录结构中的 web)中的 css 文档存储相同。
如果我尝试使用它来查看页面,那么在包含 css 的情况下一切正常。但是,如果我尝试运行此文件( shift + F6 ),浏览器中会出现错误,说明重定向失败。
如果我尝试在 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多点,我刚刚添加了一些打印屏幕解释情况。