0

我在练习项目中遇到了一些麻烦。

我有一个用 Servlets/JSP 编写的小型媒体门户项目。在这个项目中,我创建了一些自定义异常层次结构来处理诸如“密码错误”、“这样的用户已经注册”等情况。在 Servlet 中,我抛出错误是这样的:

        if (login.length() == 0) {
        log.error("Login field is empty!");
        throw new EmptyFieldException(i18n.getString("Login_field_is_empty!"));
    }

我也有错误页面,如下所示:

    <%@ page contentType="text/html" pageEncoding="windows-1251" isErrorPage="true" import="java.util.ResourceBundle,java.io.*" %>
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="taglib" %>
<!DOCTYPE html>
<%
    ResourceBundle resources = ResourceBundle.getBundle("i18n.MediaPortal", request.getLocale());
%>
<html style="height:100%;">
    <head>
        <link rel="stylesheet" type="text/css" href="../css/style.css">
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
        <title><%= resources.getString("Login_page")%></title>
    </head>
    <body>
        <div id="sidecolumn">&nbsp</div>
        <div id="content">
            <div><h1><%= resources.getString("You_have_encountered_an_error")%>.</h1></div>
            <div><h3><%= exception.getMessage() %></h3></div>
        </div>
        <div id="sidecolumn">&nbsp</div>
        <div id="footer"><taglib:sign/></div>
    </body>
</html>

问题是当我抛出异常时 - 除了错误页面根本不加载任何样式外,一切正常!只有文字。但是当我直接转到错误页面 url 时 - 样式已加载。问题是 servlet 以状态码 500 结尾,如果我理解正确,这个代码会取消 style.css 文件的加载。

请任何人指出这个问题的解决方案。每一个答案都值得赞赏。

4

0 回答 0