Skip to main content

2 posts tagged with "Servlet"

View All Tags

Java: ServletからJSPへリクエストをフォワード

· One min read
Yu Sasaki
Enterprise Security Manager / Advisor

目的

Servletで処理した結果をJSPファイルに転送し、HTMLを生成する。これによって、MVCモデルにおけるViewの分離ができる。

方法

protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
ArrayList<string[]> table = new ArrayList<string[]>(); // 転送データ
<中略>
req.setAttribute("table", table);
req.getRequestDispatcher("jsp/view.jsp").forward(req, res);

上記のServletコード上のtableという変数をview.jspに渡したす場合、HttpServletRequest #setAttributeで変数を登録し、getRequestDispatcherとforwardでリクエストをフォワードする。 JSP側で登録した変数を取り出すには、下記のコードを用いる。

<% ArrayList<string[]> table = (ArrayList<string[]>)request.getAttribute("table"); %>

Java, Servlet: No suitable driver found for &quot;~&quot; の原因と解決法

· One min read
Yu Sasaki
Enterprise Security Manager / Advisor

事象 - NullPointerException on java.sql.Connection

JDBCを用いてServletからMySQLのテーブルへアクセスする過程で、DriverManager.getConnectionメソッドの呼び出しの後、NullPointerExceptionが送出された(アプリケーション・サーバーはTomcat)。

<前略>
Connection conn = null;
try {
conn = DriverManager.getConnection(URL, USER, PASS);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("<sql文>");
<後略>

tomcat_error_nullpointer

原因 - No suitable driver found for "~"

デバックトレースを行ったところ、No suitable driver found for "~"というメッセージが出力されていた。JDBC Driver のクラスパスを設定していなかった為、今回のエラーが発生した。

対策 - JDBC Driverのクラスパス設定

JDBC Driver ファイル(.jar)をクラスパスに追加する。Eclipse上での設定方法は「実行」→「実行の構成」から「クラスパス」タブ内の「ユーザー・エントリー」を選択、「外部JARの追加」ボタンから、Driverを設定する。

雑感

ありがちー、なミスをしてしまったー。