我在练习项目中遇到了一些麻烦。
我有一个在Servlets / JSP上编写的小型媒体门户项目。在这个项目中,我创建了一些自定义异常层次结构来处理“密码不正确”,“此类用户已经注册”等情况。在Servlets中,抛出错误我抛出它们:
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"> </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"> </div>
<div id="footer"><taglib:sign/></div>
</body>
</html>
问题是当我抛出异常时 - 一切正常,但错误页面根本不加载任何样式!只有文字。但是,当我直接进入错误页面url - 样式被加载。问题是servlet以状态代码500结束,如果我理解的话,这段代码取消了style.css文件加载。
任何人,请指出我解决这个问题的方法。 每个答案都表示赞赏。