这非常简单明了。我想从 servlet 端抛出 503 错误。
response.sendError(503);
当这个被抛出时,我需要它来点击一个自定义错误页面。基本上是一个 503 错误页面本身,但有一些修改。
说我有503.html
,我加了
<error-page>
<error-code>503</error-code>
<location>/503.html</location>
</error-page>
在web.xml
.
我创建了一个 war 文件,其中包含一个引发 503 错误的 servlet,以及web.xml
此内容。我将其保存503.html
在父文件夹位置。(我应该把它放在别处吗?)
我在 WLS 中部署了应用程序,但这个自定义503.html
没有受到影响。我收到一般的 503 错误。
我错过了什么吗?
我的代码如下:
webapp1.war
->网络信息
->web-inf->classes->prject4->Class1.class
->web-inf->jsp->error->custom.html
web.xml
<?xml version="1.0"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Class1</servlet-name>
<servlet-class>project2.Class1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Class1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<error-page>
<error-code>503</error-code>
<location>/WEB-INF/jsp/error/custom.html</location>
</error-page>
</web-app>
class1.java
public class Class1 extends HttpServlet
{
private ServletConfig config;
public void init(ServletConfig config)throws ServletException
{
this.config=config;
}
public void service (HttpServletRequest request, HttpServletResponse response)
throws IOException
{
response.setContentType("text/html");
ServletOutputStream l_out = response.getOutputStream();
response.sendError(503);
}
}