我尝试使用NetBeans创建简单的servlet项目,我已经开始登录了。登录页面是在html中完成的,它与NetBeans“Web pages”floder(目录结构中的web)中的css documment一样存储。
如果我尝试查看页面,一切正常,包括css。但是,如果我尝试运行此文件(shift + F6),浏览器中会出现错误,指出重定向失败。
如果我尝试在jsp页面中使用css文件,则会出现类似的失败。虽然我在jsp页面中的所有html文本都很好,如果我使用普通的html页面,它可以工作,在jsp页面中css不起作用。 为了解决这个问题,我尝试使用两个服务器,Glassfish和Apache Tomcat,两者都无法正常工作。我刚刚尝试检查几个相似的主题,但是包含css到jsp的描述不起作用。 下一个任务,我在那里通过response.sendRedirect()函数重定向到登录页面。如果我尝试重定向到jsp页面,它工作正常(不包括css),但如果我尝试重定向到html,它不会与上面显示的相同的错误。如果没有有效的地址存储为sendRedirect()函数参数,则会发生相同的故障。 根据这个服务器的一些答案,我已经将html和css文件存储在正确的路径中(请考虑此问题中的第一个图像)。
Referencing a resource placed in WEB-INF folder in JSP file returns HTTP 404 on resource
我认为,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分,所以我刚刚添加了一些解释情况的打印屏幕。答案 0 :(得分:0)
EDIT 删除了初始响应,因为它没有帮助的情况,以下是css和jsp的工作设置,都在部署描述符(web.xml)和文件结构
我查看了我的一个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>
我将jss包含在jsp中,代码如下:
<link rel="stylesheet" type="text/css" href=" css/main.css" />
所以代码中发生的是将URL地址/ jsppage1映射到WEB-INF文件夹中的文件,就jsp文件而言,它存储在项目的根目录,甚至虽然它在WEB-INF的文件结构中。