• ベストアンサー

データベースの使用

えっと、HTMLでテキストフィールドに記入してもらった内容をHTML上にあるボタンを押すことによってJavaを起動させ、HTML上の内容を読み取り、MySQLに保存したいのですが、どうやったらよいでしょうか?

  • Java
  • 回答数19
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
回答No.19

>ここで質問して、どうしてもわからなかった場合購入しようと思ってます。実際本を見るよりも、わかる方に聞いたほうが僕としては理解しやすいんです^^; 自分で調べて勉強する気はありません。 ネットで聞けば分かるかもしれないのに、わざわざ本を買うなんてもったいなくてできません。 と聞こえますが? 1つ1つ進む度に躓いて、その度にここで質問して、18回も回答をもらってるのに (まぁ自分の教え方が悪いのかもしれないが。) 未だ解決できていない。 だから、ここで聞くよりは「本を読んだ方がここより早いよ。」と言ってくれたんですよ。 しかも「3:直ぐに回答ほしいです。」なんですよね? それなのに、上記発言は… ネットにはびこる「教えて君」 と思われても仕方ない発言ですよ。 いや、別に「本ほ買って読め。」と言ってるんじゃなくて、「自助努力」が感じられないってことです。 あとはTomcatなんて使わずに有料のものを使えばサポートがここよりもっと「お客様」として扱ってくれますよ。

kuninari
質問者

補足

「教えて君」?ここは教えてもらうところじゃないんですか? 本を買えっていうなら「教えて!goo」は必要ないと思いますが。

その他の回答 (18)

回答No.8

おー。動いたようですね。(笑) >というエラーが出てしまいます;; で、続きをちゃんと読みました? ---JavaでHell Worldより引用---------------------- エラーがでてコンパイルできませんでした涙。これはサーブレットのソースで使われているクラスが環境変数CLASSPATHに追加されてないためです。サーブレットで使用するjarファイル(Javaのアーカイブファイル)は[Tomcatのフォルダ]\common\lib の下のservlet.jarというファイルです。アプリケーション編を参考にしてCLASSPATHにservlet.jarを追加してください。 CLASSPATHを設定したら同じようにコンパイルしてみてください。コンパイルが成功し「HelloWorldServlet.class」というクラスファイルが生成されます。 ---JavaでHell Worldより引用---------------------- とありますよ? あっ、違うか。 >今回はちゃんとパスも通してやってみたのですが、 とありますね。ごめんなさい。 システム環境変数のCLASSPATHに追加したんじゃなくて、ユーザーの環境変数のCLASSPATHに追加したってことですよね???

kuninari
質問者

補足

ユーザーの方に追加しました。

回答No.7

ファイヤーウォールとかセキュリティソフト関係が邪魔してるとかは?

kuninari
質問者

補足

すみません;;インストールするときのUser IDとPasswordをいじったら表示されました^^; でも新たな問題が・・・。ためしにこのプログラムを実行しようとしたのですが、 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ContentTypeを設定 response.setContentType("text/html; charset=Shift_JIS"); // 出力用PrintWriterを取得 PrintWriter out = response.getWriter(); // 出力 out.println("<html>"); out.println("<head>"); out.println("<title>Hello World Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World"); out.println("</body>"); out.println("</html>"); } } (JavaでHello Worldの物です) 今回はちゃんとパスも通してやってみたのですが、 C:\テスト>javac HelloWorldServlet.java HelloWorldServlet.java:2: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloWorldServlet.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloWorldServlet.java:5: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : HelloWorldServlet の クラス public class HelloWorldServlet extends HttpServlet { ^ HelloWorldServlet.java:6: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : HelloWorldServlet の クラス public void service(HttpServletRequest request, ^ HelloWorldServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : HelloWorldServlet の クラス HttpServletResponse response) ^ HelloWorldServlet.java:8: シンボルを解決できません。 シンボル: クラス ServletException 場所 : HelloWorldServlet の クラス throws ServletException, IOException { ^ エラー 6 個 というエラーが出てしまいます;;

回答No.6

>Tomcat自体は動いているのですが、>http://localhost:8080/に接続してもページが表示されないんです・・・。 %TOMCAT_HOME%\conf\server.xmlのポートの設定はどうなっていますか? ちなみにデフォルトだと以下のように設定されていて、ポートは8080ですが。 <!-- Define a non-SSL Coyote TTP/1.1Connector on port 8080 --> <Connector port="8080"…以下省略 他の物とポートがぶつかったので、Tomcatのインストール時に変更したとかはありませんか? logが吐かれていないのならば、Tomcatが起動直後に(何らかのエラーで)すぐに落ちてしまった可能性の方が強いと思います。

kuninari
質問者

補足

127.0.0.1でやってみましたがダメでした;; ポートの設定はちゃんと8080になってました^^;

回答No.5

localhostにpingは飛びます?…よね…。 う~ん…。 localhostを127.0.0.1にしてもダメですかね? Tomcatの5はjava1.5用だっていうことだから問題ないと思うし…。 う~ん…。

回答No.4

>Tomcat自体は動いているのですが… 動いていることは何で確認しました? あと、自分で紹介しておいてなんですが… 「JavaでHello World」に書いてあるバージョンだと「Startup.bat」で起動させるようですが、 新しいバージョン(自分のは4.1.31)だと 「スタート」→「プログラム」→「Apache Tomcat4.1」→「Start Tomcat」 で起動させます。 あと、[Tomcatのインストールフォルダ]\logsにログファイルがあるので、そちらにエラーなど出ていませんか?

kuninari
質問者

補足

Windowsの画面の右下にあるApache Tomcatを右クリックしてStart Serviceが押せない状態だったので。こちらのバージョンは5.5.9です。ログファイルにはtxtファイルがかなりありましたが、全部真っ白で何も書かれてませんでした。

回答No.3

>HTML上にあるボタンを押すことによってJavaを起動させ、 んー。この時点で無理でしょう。 「Javaを起動させ」っていうのはローカルマシン上で起動させて処理したいってことですよね?それが可能ならどんな悪いことだってできちゃいます。ボタン押したら「入会完了」みたいな表示の出る不当請求のHPみたいな回りくどいことしなくても、何だってできるということになるんですよ…。(^^; 回り道でも(というかブラウザ使う限り、その道しかないので)サーブレット使うしかないと思いますよ。と、ここまで書いてActiveXコントロール使えばできるかも知れないけど、おそらく望まれている方向性とはまるで違う技術です。

kuninari
質問者

補足

そうですね~;; それでサーブレットを使おうとしたのですが、Tomcatの方がうまく動作しないのですが・・・^^; ただインストールするだけじゃダメなのでしょうか? Tomcat自体は動いているのですが、http://localhost:8080/に接続してもページが表示されないんです・・・。

回答No.2

えっとですね。 >できればサーブレットを使わないでやってみたいです。 ↑は細かいことを言うと JSPは実はサーブレット なので、javaで実現を考えるなら「無理」ですね。(^^;A あと、JSP1つでこの様なことをするのは「勉強のため」にするのは構いませんが、今の流行にはのれていないので「いけてない」ですね。 とまぁ、それを言っちゃぁなんなんで… >この書き込みボタンを押したときにJavaが起動し、… これも無理ですね。(^^;A (まずはサーブレットやJSPがどう動いているかを勉強して欲しいのですが…) >Javaでデータベースもテーブルも同時に作れないのでしょうか? それは可能ですが、↑を実現するとボタンを押すたびにテーブルが作成されますよ? DBにはあまり詳しくないのですが、同じテーブル名のテーブルを作ろうとすると怒られるはずです。 ですので、DBのテーブルはあらかじめ作っておいて、そのテーブルに対してボタンが押されたらデータをINSERTする。 とするのが一般的ですね。 でまぁ質問者さんのやりたいことを実現しようと思ったら 入力.jspを作成   データを入力するフォームがある。   書き込みボタンを押すと「登録.jsp」を呼ぶ。 登録.jspを作成   入力.jspから渡されたデータをDBにINSERTする。   ↑の結果を表示する。(登録しましたとか、失敗しましたとか。) こんな感じですかね。 JSPなどの技術については別途調べられた方がいいかと。 この前の「JavaでHell World」にもJSP編があるので、最初の1歩はできるでしょうし。 ではがんばってください。

回答No.1

う~ん。 いろいろやり方はあるんですけど… 段階的に勉強するなら 1. 入力HTML→サーブレット→サーブレットでDBに接続してデータ格納→サーブレットからHTMLを返す からやってみて、 2. 1.の内容をすべてJSPでやってみる。 3. MVCモデルに則ってやってみる。 4. フレームワークを使ってやってみる。 ってな感じでしょうか? ちなみにサーブレットやJSPなどに記述するDBに接続したりするコードは「JDBCの質問」やってた内容そのままで大丈夫ですよ。 (あっ、mainメソッドを実装するって意味じゃないですよ。) とりあえずは昨日、一昨日に出てきてた「Tomcat」を動かすことから始まるのかな。

kuninari
質問者

補足

この前はありがとうございました^^ できればサーブレットを使わないでやってみたいです。 実際に作りたいものは別にあって、(かなり大きなプログラムなのでいきなりそこに使うのは不安なんです^^;)今回は、まず小さなプログラムを用いてテストをしてみようかなぁって感じです。 HTMLにはすでに、 名前:{テキストフィールド} 住所:{テキストフィールド} 電話番号:{テキストフィールド} {書き込みボタン} みたいな感じで作ってあります。この書き込みボタンを押したときにJavaが起動し、名前・住所・電話番号を読み取り、MySQLの方へ保存するという形にしたいです。あと、MySQLに保存する時に今は先にコマンドプロンプトでMySQLを実行し、データベース・テーブルを作ってからJavaでそこに書き込むという感じでやっているのですが、Javaでデータベースもテーブルも同時に作れないのでしょうか? お願いします。

関連するQ&A

  • phpMyAdminで、データベースを設置する流れについて

    phpMyAdminを、使用してMySQLの操作をし、 サイト上のデータベースとリンクさせたいです。 しかしながら、phpMyAdminの利用方法が、いまいち、 分かりません。 1) http://○○○/phpmyadmin/にアクセスをして、 「新しいDBを作成します。」から 新規DBを作成。(例:個人情報という名前を付与。 フィールド欄には、”5”と記入。) 2)テキストフィールド欄に、 ・名前 ・住所 ・メール ・電話 ・性別 と記入して、完了後、「保存する。」で、データ保存 3)ここから、先が、まったく分かりませんので、 教えて下さい。 画面には、「PHPコードの作成」欄があります。 おそらく、ソースを、○○○.php などの ファイルへ添付して、アップすると思うのですが・・・

    • ベストアンサー
    • MySQL
  • Mysqlにhtmlのフォームから登録できません。

    WindowsでphpからMysqlにデータを登録しようと思っているのですが、うまくいきません。 データベースの内容をHTML,PHPで書き出すことは正常にできたのですが、登校フォームから入力してもデータが書き込まれません。フォームのHTMLはおそらく間違ってないと思います。 これが受け入れ側のファイルの内容です。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php extract($_POST); mysql_connect('localhost','root','パスワード'); mysql_select_db('データベース名'); $sql = "insert into テーブル名 values('フィールド1の値','フィールド2の値','フィールド3の値','フィールド4の値',0)"; mysql_query($sql); ?> </body> </html> ファイル名は.phpの拡張子で保存してます。 Mysqlの環境設定はできているのに何故データを登録できないのでしょうか? 詳しい方どうか教えてください。よろしくお願いします。

  • テキストフィールド?とメニューについて

    HTMLやジャバスクリプトは初めてなのですが、C言語のように、 メニュー(Cで言うコンボボックス)の内容を動的に変化させられないのでしょうか? また、テキストフィールド(Cで言うエディットボックスです)に 文字列や変数を表示するにはどうすればいいのでしょうか?

  • htmlでユーザーが画像を貼り付けられるか

    htmlでユーザーがテキストを入力するフィールドと同様に、自由に画像を貼り付けられるフィールドを定義することができるか。 できるとしたら、どういうhtmlを書けばいいか。 またその貼り付けた画像をMySQLのmediumblobフィールドに保存する場合、どういうphpコードを書けばいいか、を教えてほしい。

    • ベストアンサー
    • PHP
  • Javaアプリケーション内でコンパイルはできますか?

    Javaアプリケーションから、シェルにアクセスして、Javaプログラムをコンパイルおよび実行したいのですが、できますか? 具体的には、例えば、JavaアプリケーションのメインフレームにJavaプログラムを記述するテキストエリアがあってユーザはそこにJavaプログラムを記述し、任意の名前で保存できるとします。また、メインフレームには、コマンドを実行するテキストフィールドがあり、ユーザは保存したプログラムをそこからコンパイルできる。つまり、そのテキストフィールドに、 javac xxxxx.java と入力するとコンパイルでき、 java xxxxx とすると実行できる。 このようなことをしてみたいのですが、JavaアプリケーションからWindowsもしくはUNIXのシェルと連携させることはできますでしょうか?ご存知の方よろしくお願いします。

    • ベストアンサー
    • Java
  • データベースソフト?

    指定したドライブ(またはフォルダ)内の検索が出来るソフトを探しています。 扱いたいファイルは、テキスト、HTMLです。 テキストファイルをデータベースとして扱うソフトはありそうですが HTMLが扱えるものはないでしょうか。 メモ帳、ワードパットなどで自分で書いた文章、 面白そうな情報が書いてあるので保存しておいたHP、 これらからキーワード検索をしたいのです。 DLしたHPは、できるだけリンクが生きたまま使いたいのです。 出来ればフリーが希望ですが、参考にシェアウェアでも構いません。 何か良いソフトがあるでしょうか。

  • Javascriptsによるテキストフィールド上の数字のインクリメントについて

    お世話になります。 現在やっているゲーム中に使うカウンターとロガーを作成することを思い立ち、HTML+PHP+MySQLにてWebの作成を開始したのですが、その入力フォームを便利にしようとしてちょと詰まってます。 フォーム内容としては テキストフィールド インクリメントボタン デクリメントボタン テキストフィールド インクリメントボタン デクリメントボタン テキストフィールド インクリメントボタン デクリメントボタン サブミットボタン という形で作成しておりまして テキストフィールドには数字を入力しますがその右側にボタンを設けてそのボタンでも数字を操作できるようにしたいのでjavascriptに手を出したのですが、どうにも上手く動かせません。 質問に文字数制限がきついのでちょと簡略化させてもらいまして <script type="text/javascript"><!-- function increment(i) { document.testform.elements["text"+i].value = eval(document.testform.elements["text"+i].value) + 1 } // --></script> </head> <body> <FORM name="testform"> <input type="text" name="text1" value=0><br> <input type="button" value="1" onClick="increment(1)"><br> </FORM> 上記では動くのですが最後のonClick=の後をできればダイレクトに"increment(text1)"にしたく色々いじっているのですがどうにも上手くいきません。 何かアドバイスを頂けないかと思うのですがいかがでしょうか。 よろしくお願いいたします。 また1のインクリメントだけではなく3増やすボタンも同時につけたいと思いますが、こちらのtipsもありましたらお教え頂きたく思います。

  • 漢字の画数のデータベース

    漢字の画数を判別するプログラムを作りたいのですが、郵便データのように画数データがないか探しております。 色々調べてみて、Unihanというのが使えそうだというのは、わかったのですが 英語サイトなだけにどうDBに取り込んだらいいのかがわかりません。 必要なフィールドとかどこかに記載してあったりするのでしょうか? また、ダウンロードしたテキストファイルはいくつかあり、どれが何のでーたなのかなど お分かりになる方がいたら、教えてください。 一応MySQLとPHPを使用する予定です。 よろしくお願いします。

  • eclipseを使ったデータベース操作(mySQL)

    現在eclipseを使ってswingにてデータベース操作したいと思っています。 内容としては簡単なものでフォーム上に配置された テーブル(JTable)の内容を更新ボタンで更新してmySQL 内に配置したデータベースを更新するというものです。 jdk+エディッタにてはコマンドを投げてあげれば更新は出来るのですが、eclipseで同じソースで実行すると java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver っというエラーが発生します。 まず上記の内容を解決して、次の段階としてswingを使って更新したいと思っています。 上記のエラーはjdbcのクラスパスがあっていないっ戸のことだと思うのですが、jdk+エディッタではうまくいきます。この場合はeclipseに特別な設定をしてあげなければならないのでしょうか?

    • ベストアンサー
    • Java
  • ボタンのアクション条件

    表示画面だけ開くと 名前 [text] 番号 [text] [クリアボタン] という感じでtextの文字記入欄と戻るボタンだけがあります。 登録画面では 番号 [text] [検索ボタン] 名前 [入力不可フィールド] 住所 [入力不可フィールド] [送信] このように[text]に番号を記入して検索を押すと、その番号にあったものが入力不可のフィールドに表示されるようになり、送信ボタンを押すと、登録画面のtextに内容が反映されて表示できるようになります(これは入力可能) 番号 [111] [検索ボタン] 名前 [ヤマダ] 住所 [北海道] [送信] ↓ 名前 [ヤマダ] 番号 [北海道] [クリアボタン] 番号の所に111と記入→検索ボタンを押す→下の名前と番号のところに表示される →送信ボタンを押す→表示画面のtextに送信した結果が反映されるというものを作りました ここからが問題なのですが、 登録画面から表示画面を表示したときにtextを変更してクリアボタンを押しても元の呼んできた内容が表示され、直接表示画面を開いてクリアボタンを押したときはtextに何も表示されていない状態にしたいのですがやり方が分かりません。 よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう