前提・実現したいこと
jsp初心者ですが、独自のエラーページ作成をしております。
お忙しいところ恐縮ですが、お知恵をおかし頂ければ幸いです。
前提:
1:/jsp/error.jspでcompile errorを故意に発生
2:内部エラーを/html/error.htmlに遷移して独自のエラーページを表示
3:web.xmlを使うこと。
実現:
/jsp/error.jspでcompile errorを故意に発生させて、
その内部エラーを/html/error.htmlに遷移して独自のエラーページを表示
分からないこと:
1:web.xmlの配置
https://tokkan.net/jspservlet/eclipse2.html
上記のサイトを参考にしてweb.xmlを作成したのですが、
本来であれば、The web. xml file is located in the WEB-INF directory of your Web
application.となるはずが、WEB-INF/lib/web.xmlのようになってしまます。恐らくそれがそれが原因
で、web.xmlが読み込まれていないのだと思います。
しかし、どのように原因を解決すればよいのかわからないです。
2:内部エラーが発生し、独自のエラーページへ遷移できない。
解決したいこと:
上記の分からないことを解決して期待結果通りに動かしたい。
発生している問題・エラーメッセージ
該当のソースコード
Java
1import java.io.IOException; 2import javax.servlet.RequestDispatcher; 3import javax.servlet.ServletException; 4import javax.servlet.annotation.WebServlet; 5import javax.servlet.http.HttpServlet; 6import javax.servlet.http.HttpServletRequest; 7import javax.servlet.http.HttpServletResponse; 8 9/** 10 * Servlet implementation class SampleServlet4 11 */ 12@WebServlet("/ServletTest") 13public class ServletPractice4 extends HttpServlet { 14 private static final long serialVersionUID = 1L; 15 16 /** 17 * @see HttpServlet#HttpServlet() 18 */ 19 public ServletTest() { 20 super(); 21 22 } 23 24 /** 25 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 26 */ 27 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 28 String disp = "/jsp/error.jsp"; 29 RequestDispatcher dispatch = request.getRequestDispatcher(disp); 30 dispatch.forward(request, response); 31 } 32 33 /** 34 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 35 */ 36 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 37 38 // html/error.jsp にページ遷移 39 RequestDispatcher dispatch = request.getRequestDispatcher("/html/error.html"); 40 dispatch.forward(request, response); 41// doGet(request, response); 42 } 43 44}
/html/error.html
html
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>エラーページ</title> 6</head> 7<body> 8独自エラーページです。<br> 9<p><独自エラーページについての補足> 10 11<p>独自エラーページを設定しても、<br> 12</p> 13<p>512バイト以下の場合は、IEデフォルトのエラーページが表示されてしまいます。<br> 14<P> 15独自エラーページを作成する際は、512バイトより大きく作成してください。</p> 16</body> 17</htm> 18 19
/jsp/error.jsp
jsp
1<%@ page contentType="text/html;charset=UTF-8" %> 2<html> 3 <head> 4 <title>入力画面</title> 5 <meta http-equiv="Context-Type" content="text/html;charset=UTF-8"> 6 </head> 7<%= 8 String hoge = "aaa"; 9 %> 10 <body> 11 <form action="/ServletProject/ServletPractice4" method="post"> 12 <input type="text" name="comment"> 13 <input type="submit" value="ボタン"> 14 </form> 15 </body> 16</html> 17
試したこと
補足情報(FW/ツールのバージョンなど)
Java_version_8.0
Tomcat_version_9.0
the way to create WEB.xml
Servlet projectの準備
###期待結果
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。