これは非常に単純で簡単です。サーブレット側から 503 エラーをスローしたい。
response.sendError(503);
これがスローされると、カスタム エラー ページにヒットする必要があります。基本的には 503 エラー ページそのものですが、いくつかの変更が加えられています。
私が持っていると言って503.html
、追加しました
<error-page>
<error-code>503</error-code>
<location>/503.html</location>
</error-page>
でweb.xml
。
503 エラーをスローするサーブレットとweb.xml
、このコンテンツを含む war ファイルを作成しました。503.html
親フォルダーの場所に保管しました。(別の場所に保管する必要がありますか?)
アプリを WLS にデプロイしましたが、このカスタム503.html
はヒットしません。一般的な 503 エラーが発生します。
何か不足していますか?
私のコードは以下の通りです:
webapp1.war
->web-inf
->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);
}
}