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

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

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

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

Q&A

0回答

739閲覧

dispatcher.forwardが実行されない

joker2000

総合スコア0

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

0グッド

0クリップ

投稿2021/09/15 12:49

前提・実現したいこと

forwardを実行させたい

現在、eclipse,tomcatを使用して、投稿アプリ(webアプリ)を作っています。しかしながら、forward文を実行している際、catch文が実行されてしまします。

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

### 該当のソースコード

servletのserv1.javaのソースコード(問題のコード)

1 2import java.io.IOException; 3import java.io.PrintWriter; 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.PreparedStatement; 7import java.sql.ResultSet; 8import java.sql.SQLException; 9import java.util.ArrayList; 10 11import javax.servlet.RequestDispatcher; 12import javax.servlet.ServletException; 13import javax.servlet.annotation.WebServlet; 14import javax.servlet.http.HttpServlet; 15import javax.servlet.http.HttpServletRequest; 16import javax.servlet.http.HttpServletResponse; 17 18 19@WebServlet( 20 name = "serv1", 21 urlPatterns = {"/"} 22) 23public class serv1 extends HttpServlet { 24 25 @Override 26 public void doGet(HttpServletRequest request, HttpServletResponse response) 27 throws IOException { 28 29 javabeans names = new javabeans(); 30 String[] k = cone(); 31 names.setName(k); 32 request.setAttribute("names",names); 33 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/index2.jsp"); 34 try { 35 dispatcher.forward(request, response); 36 } catch (ServletException | IOException e) { 37 // TODO 自動生成された catch ブロック 38 e.printStackTrace(); 39 PrintWriter out; 40 response.setContentType("text/html; charset=Shift_JIS"); 41 out = response.getWriter(); 42 out.println("<html><body>"); 43 out.println("<h1>error</h1>"); 44 out.println("<p></p>"); 45 out.println("</body></html>"); 46 47 } 48 49 } 50中略

以下はforward先のスクリプト。index2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% javabeans n = (javabeans) request.getAttribute("names");%> <%String[] na = n.getName();%> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> <title>Hello App Engine</title> </head> <body> <h1>掲示板</h1> <form action="/serv2" method="get"> 文<input type = "text" name = "name"> <input type="submit" value = "投稿"> </form> <table> <% for(int i = na.length-1; i > -1; i--) { %> <tr> ---------<br><br> <%=na[i]%><br><br> ----------<br> </tr> <%} %> </table> </body> </html>

試したこと

実行しても真っ白だったため、ためしにcatch文に処理を書いてみると、反映された。request.getRequestDispatcher("/WEB-INF/index2.jsp");の部分を変えてみたが、404エラーがでるので、おそらく合っていると思われる。

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

localhostのtomcatサーバーv8.0を使用しています。
イメージ説明
これがファイル構成になっています。jspファイルとjavaファイル意外は触っていません。
何かしらの助言を頂けると幸いです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問