こんにちわ。いつもありがとうございます。
サーブレットをコンパイル後、実行するとHTTPのPOSTメソッドは、このURLではサポートされていません。
と表示されます。
前のJSPからはmethod="POST"にて送信しているのですが・・・
すみませんが、ご教授下さい!
ソースは以下となります。
よろしくお願い致します!
import javax.servlet.http.*;
import java.sql.*;
import java.io.*;
public class EditingServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException {
/*フィールドの宣言*/
Connection conn = null;
res.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = res.getWriter();
out.println("<html><head></head><body>");
String Str = req.getParameter( "Str" );
try {
String user = "ID", pwd="PW";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://10.121.67.247:1433;DatabaseName=Name"; /*JDBC URL*/
conn = DriverManager.getConnection(url,user,pwd);
Statement stmt = conn.createStatement();
stmt.executeUpdate("UPDATE T_Strfer SET フラグ ='1' WHERE id='"+ Str +"'");
out.println("データを更新しました!<br>");
} catch (ClassNotFoundException e) {
out.println("クラスが見つかりません。");
} catch (SQLException e) {
out.println("データの更新に失敗しました。 ");
} finally {
try {
if (conn != null) { conn.close(); }
} catch (SQLException e) {}
}
out.println("</body></html>");
out.close();
}
}
No.5ベストアンサー
- 回答日時:
えーと実はJSPならばOKなのですね。
とゆーことはJavaには問題はないと考えられます。
すると問題はSQLか
例えば存在しないカタチのIDを入力したとか。
もともと問題なかったので問題は違う状態で
発生してるのでは?
この回答への補足
fortranxpさま
ありがとうございます☆
IDは前のJSPから持ってきているので大丈夫かと思います。
明確な問題点が分からないので恐縮なのですが・・・
プロンプトで実行したら以下のメッセージが出ました。
Exception in thread "main" java.lang.NoSuchMethodError: main
関係ありますでしょうか?
fortranxpさま
普通に動くサーブレットでもコマンドで実行すると
Exception in thread "main" java.lang.NoSuchMethodError: mainが
表示されます。
なのでプログラムのせいではないと思います。
すみません。。。
No.4
- 回答日時:
自宅のMySQLで実験したところ
もしかしたら、
String Str = request.getParameter("Str");
↓
int Str=Integer.parseInt(request.getParameter("Str"));
かつ
stmt.executeUpdate("UPDATE T_Strfer SET フラグ ='1' WHERE id='"+ Str +"'");
↓
stmt.executeUpdate("UPDATE T_Strfer SET フラグ ='1' WHERE id='+ Str +'");
でうまくいきました。
SQLの違いかも知れませんけど。
この回答への補足
fortranxpさま
ご自宅でまで試験して頂いてありがとうございます☆
試してみましたがデータの更新に失敗しました。と表示されます。
しかし、e.printStackTrace(); を足してもデータの更新に失敗しました。と表示されました。。。
お手数ですがご教授下さい。
fortranxpさま
本日、テストした所("UPDATE T_Strfer SET フラグ ='1' WHERE id="+Str);の記述で実行されました。
実行はされましたがテーブルに更新された様子がないのでSQLServlerの所でまた聞いてみます。
貴重なお時間頂きまして本当にありがとうございました☆
No.3
- 回答日時:
>しかしデータの更新に失敗しましたと表示されました。
でしたらスタックトレースを出した方が良いでしょう。
原因が記述されているはずです。
} catch (SQLException e) {
e.printStackTrace(); ←←これ足す
out.println("データの更新に失敗しました。 ");
} finally {
No.2
- 回答日時:
web.xmlはWEB-INF直下に配置します。
TOMCAT4.1.xではこのように記述します。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>EditingServlet</servlet-name>
<servlet-class>EditingServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EditingServlet</servlet-name>
<url-pattern>/EditingServlet</url-pattern>
</servlet-mapping>
</web-app>
TOMCATのバージョンによってはうまくいかないかもしれません。
またform actionは
<form action="/コンテキストルート/EditingServlet" method="post">
のようになっていますか?
この回答への補足
fortranxpさん
ありがとうございます。
Tomcatのバージョンは5xになります。
他のサーブレットは動くので記述は問題ないと思います。
またform actionもあっている様です。
doGetやdoPostを使うにあたって別の記述は必要なのでしょうか?
宜しくお願い致します☆
fortranxpさま
端末を再起動したら開きました!
すみません。
しかしデータの更新に失敗しましたと表示されました。
SQLでおかしい部分ありますでしょうか?
度々、すみませんが宜しくお願い致します!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP php ログイン 1 2022/11/01 00:24
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Servletが動かない
-
始めてのサーブレットでつまづ...
-
import javax.servlet.*;
-
JSPからServletへの遷移
-
WEB開発をはじめたばかりの初心...
-
サーブレット フィルタ
-
サーブレットが起動しない
-
servletのコンパイルエラーにつ...
-
★MicroSoft Outlook アドレス帳...
-
outlookの行数を変える方法
-
サーブレット-エラー(404)
-
伸び悩み?サーバーサイドとの...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
JSPのクラスをコンパイルできな...
-
split関数で区切り文字がない場合
-
Javascriptの値をJava(JSP)へ渡...
-
正しいURL指定しているにもかか...
-
SVFの設定について:クラスパス...
-
Eclipseのアンインストールの仕方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPからServletへの遷移
-
サーブレットが実行できない
-
サーブレットが起動しない
-
Servletが動かない
-
tomcatとapacheの連携
-
list<クラス名> とは何でしょう...
-
JSPからサーブレットを呼び出す...
-
Eclipseにおけるサーブレット作...
-
servlet (resin) について
-
servletでHTTPステータス404エ...
-
【Servletのエラーについて教え...
-
eclipse servlet 404対処方法
-
サーブレット フィルタ
-
JSPからクラス(サーブレット)...
-
DB接続しようと思ったら下記の...
-
Strutsのtaglibについて
-
struts関連 web.xmlに複数の<se...
-
Tomcatでサーブレットを動かそ...
-
eclipse でjspからJavaを実行す...
-
Tomcatによるサーブレット起動...
おすすめ情報