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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

servlet

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

Q&A

解決済

2回答

10857閲覧

jspページで画面遷移なしにデータベースと連携したい

RyoM

総合スコア90

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

servlet

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

0グッド

0クリップ

投稿2016/10/30 14:16

お世話になります。
現在、jspページでレジの画面を設計しています。
そして以下のような流れでやろうと考えています。
①商品コードをリストから選択、個数を入力し、ボタンをクリックさせその商品コードがデータベースにあるか検査する
②一致したデータがあればそのテーブルの単価を取得し、個数と掛けて小計その合計額をjspに返す。
③その後に預かり金を入力し、違うボタンをクリックさせ、処理をしてお釣りを表示させる
という流れを考えているのですが、どう考えても不便です。
しかし、今持っている知識の中では
どうしても一度jspページからservletへ遷移し、データベース連携するという方法しか知りません。
出来れば、データベース接続をするのもjspのページから動かず、どうにかして商品コードを選択させた時に単価を持ってきて、計算処理も動的に行い、servletへディスパッチするのは最後だけがいいです。javascriptを使えば出来そうな気がするのですが、どういう検索をすれば望みのものが出てくるかも分かりません。
非常に分かりにくい文章で申し訳ないですが、お分かりの方がいらっしゃいましたらヒントだけでもいただけると非常にありがたいです。
何卒、よろしくお願い致します。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/10/30 23:02

jspはサーブレットの子クラスなのであるのでサーブレットが実行される前なら不可能
guest

回答2

0

技術的な話でいえば、JSPからデータベースに対してSQLの発行は可能です。

というのも、JSPとサーブレットとでは実装の書き方が違うだけで、双方ともリクエストをサーバ側へ投げて、レスポンスを受け取るのに違いはないからです。

実現したいことに書かれている「面倒です」は誰にとって面倒なのかが欠けていますので、正確な回答にならないかも知れませんが、JSPで表示したページから部分的に画面を更新したいということなのであれば、これについてはjQueryなどJavaScriptのライブラリを使ってHTMLを部分的に書き換えるようにします。

投稿2016/10/31 05:46

A-pZ

総合スコア12011

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

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

RyoM

2016/10/31 10:07

丁寧な回答ありがとうございます。 誰に対して面倒かというご指摘もありがとうございます。 この面倒はユーザーにとっての面倒です。 jqueryをもっと勉強してみようと思います。 ありがとうございました。
guest

0

ベストアンサー

基本的にはjspとサーブレットの組み合わせでは同期通信しかできません。
ご質問のような画面をばっさり書き換えず、一部だけ書き換える、という手法は、
非同期通信、ajaxというやつに当ります。

お使いのフレームワークにもよりますが、ajaxの応答が簡便に書ける
フレームワークであれば、ajaxを利用して実現できるでしょう。

ざっくりですが、jQueryで、ボタンのクリックで、
・ 商品コード ・個数をajaxでPostします。
ソース的には以下のような感じです。

$.ajax({
type : "POST",
url : サーバーのコンテキストパス + "/" + "対応するアクション・メソッド名",
data { itemId : 商品コード, cout : 個数}
cache : false,
async : false,
dataType: 'jsonp',
success : function(result) {
・返って来たresultはDOM操作で、ドキュメントに直接入れる。
・例 $('#計算結果').val(result.料金());
}
});

java側ではajaxで投げてくる、「対応するアクション・メソッド名」を準備しておき、
・ その商品コードがデータベースにあるか検査する
・ 一致したデータがあればそのテーブルの単価を取得し、
ajax応答を返す。なければエラーで返す。
と言った感じでしょうか。

投稿2016/10/31 02:33

akio221

総合スコア716

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

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

RyoM

2016/10/31 10:05

丁寧な回答ありがとうございます。 ajaxは名前だけ聞いたことがあったものの何をするものか全く知りませんでした。 これでなんとかなりそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問