質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

2055閲覧

独自のエラーページ作成

EmaS

総合スコア2

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2020/06/25 12:14

編集2020/07/02 00:15

前提・実現したいこと

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:内部エラーが発生し、独自のエラーページへ遷移できない。

解決したいこと:
上記の分からないことを解決して期待結果通りに動かしたい。

発生している問題・エラーメッセージ

Internal Error

該当のソースコード

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

試したこと

色々調査しましたが、上手くいかない。
参考1
参考2

補足情報(FW/ツールのバージョンなど)

Java_version_8.0
Tomcat_version_9.0
the way to create WEB.xml
WEB.xmlの配置
Servlet projectの準備
###期待結果
Expected Result

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ただのURL間違いでした。
自己解決できました。

投稿2020/07/02 00:16

EmaS

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問