如何在NetBeans servlet / jsp项目中使用html和/或css样式?

时间:2013-07-20 09:36:01

标签: java html css jsp netbeans

我尝试使用NetBeans创建简单的servlet项目,我已经开始登录了。登录页面是在html中完成的,它与NetBeans“Web pages”floder(目录结构中的web)中的css documment一样存储。

Way of storing files in NetBeans

如果我尝试查看页面,一切正常,包括css。但是,如果我尝试运行此文件(shift + F6),浏览器中会出现错误,指出重定向失败。 Error during opening html page

如果我尝试在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分,所以我刚刚添加了一些解释情况的打印屏幕。

1 个答案:

答案 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的文件结构中。