MySQLを用いたウェブ制作について詳しい方に質問です。


ウェブ制作するにあたって、
<h#>~</h#> や <p>~</p> <a href="*">~</a> の内容など、
見出しや本文など、「内容の文字列」は、MySQLのレコードとして保存しておいて、
HTMLファイル(閲覧用)、PDFファイル(印刷用)などのように、
用途に応じて最適な形式に出力したり、
MySQL内に言語別の文字列を(UTF-8で)用意しておいて、
閲覧者のブラウザの設定言語などに応じて出力するように
したいと思います。

このような場合、世のウェブ制作者様方はどのような手法を用いるのでしょうか? JavaScript でできるでしょうか? それとも、サーバーサイドJava などのような、より複雑な手法が必要でしょうか?

できれば、テンプレートなどもMySQLに保存しておきたいと思っております。

イメージとしては、MySQLのレコードが更新されると、サーバーサイドスクリプトなどが、適時HTMLやPDFファイルなどを書き換える、というような挙動です。

幅広い視点からのご意見を願います。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/01/19 05:00:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:guki No.1

回答回数51ベストアンサー獲得回数1

ポイント19pt

普通はPHPなど使うと表示部分はテンプレートとして分離しておきます。smartyなどが有名です。

CakePHPなどのMVCフレームワークを使っていてもやはり通常表示部は分離します。

通常、文字装飾までDBに入れることはありません。

id:Web-Production

ありがとう存じます。

私はPHPができませんので、Java系の技術で何とかしたいのですが…

2011/01/12 06:34:31
id:kent0608 No.2

回答回数220ベストアンサー獲得回数23

ポイント27pt

JavaScript でできるでしょうか? それとも、サーバーサイドJava などのような、より複雑な手法が必要でしょうか?

javascriptを使って動的に(要求に応じて)出力される内容を変化させる方法を考えてみましょう。

おそらくjQueryなどのライブラリを使用し、クライアント側(ブラウザ)上からサーバに対して

非同期でHTTPリクエストを発行し、それを受けたサーバ側がJavaやPHP等を用いてMySQLなどのRDBMSから

表示すべき内容を取得し、結果をブラウザへと返し、ブラウザ側(jQuery)で結果を描画する事になると思います。

ここまでの内容を理解できた人なら自明ですが、そうでない場合でも、「なんだかややこしくて難しそうだ」という事は分かりますよね。

結論を言いましょう。javascript(Ajax)を使ってこの問題を解決する方が、一般的な動的サイトを構築する手法よりも複雑です。

どのみちサーバ側に置かれるMySQLなどのデータベースから中身を取り出すためには、なんらかの

サーバサイド・プログラミング言語の力を借りなければいけません。

html + css + javascript

だけでは解決できませんので、まずはwebアプリケーションの開発方法について学習されることをオススメします。

適当な入門書のプレビューを置いておきます。

http://books.google.co.jp/books?id=Y_QJ17xYDXUC&printsec=frontco...

(個人的な判断ですが、ruby on railsを選択しました。Java & Strutsなど、他の言語&フレームワークを選択しても問題ありません。)

このような場合、世のウェブ制作者様方はどのような手法を用いるのでしょうか?~(途中省略)~

イメージとしては、MySQLのレコードが更新されると、サーバーサイドスクリプトなどが、適時HTMLやPDFファイルなどを書き換える、というような挙動です。

一般的なwebアプリケーションを開発する手法で対応できます。

また、HTMLを書き換える必要はありません。大抵のWebアプリケーションフレームワークにはテンプレートエンジンという仕組みがあり、動的に出力するHTMLを変更できるからです。

PDFで出力したい場合にはGoogleに「PDF Rails 出力」など、適切な語句を入力すれば答えが分かります。

http://www.google.co.jp/search?q=rails+pdf+%E5%87%BA%E5%8A%9B

id:Web-Production

>サーバ側に置かれるMySQLなどのデータベースから中身を取り出すためには、なんらかのサーバサイド・プログラミング言語の力を借りなければ

なるほど。

>webアプリケーションの開発方法について学習されることをオススメします

具体的な指針をありがとうございます。ウェブアプリはいずれ作れるようにならなければ、と思っていましたので、そういたします。

>ruby on rails […] Java & Struts

Javaにしようかと思います。Javaの知識には汎用性がありそうだと思われますので。

>大抵のWebアプリケーションフレームワークにはテンプレートエンジンという仕組みがあり

そうなのですか! それは良いですね。

色々とありがとうございます。大変助かりました。

2011/01/13 21:21:52
id:Galapagos No.3

回答回数963ベストアンサー獲得回数89

ポイント18pt

JavaサーブレットからMySQLを利用する形になります。

まず、JDBCドライバを経由してMySQLに接続できるようにします。

id:Web-Production

ありがとうございます。

2011/01/13 21:22:57
id:ko8820 No.4

回答回数1221ベストアンサー獲得回数69

ポイント18pt

JavaScript だけでは、DBにアクセスしてデータを取り出すことができません。

サーバーサイドJava などの、サーバーサイドで動作するものが必要です。

サーバーのほうは、単にSQL文を受け取ったらデータをXML形式で返すようなインターフェースを

一個作っておけば、残りは、JavaScript だけでも実装は可能です。

しかしながらこのような方法は通常使われません。

JavaScript の方でいろいろなロジックを実装するのは煩雑になりがちだからです。

サーバーサイドJava(JSPも含む)のほうで実装します。

Javaでもフレームワークを使うのが主流です。

Seasar 2 徹底入門 SAStruts/S2JDBC 対応
竹添 直樹
4798121509

もちろん、フレームワークを使わなくても、作れます。

id:Web-Production

>サーバーのほうは、単にSQL文を受け取ったらデータをXML形式で返すようなインターフェースを

一個作っておけば、残りは、JavaScript だけでも実装は可能です。

しかしながらこのような方法は通常使われません。

JavaScript の方でいろいろなロジックを実装するのは煩雑になりがちだからです。

サーバーサイドJava(JSPも含む)のほうで実装します。

Javaでもフレームワークを使うのが主流です。

プロのご視点からのご助言、大変参考になります。ありがとうございます。

2011/01/13 21:24:15
id:Galapagos No.5

回答回数963ベストアンサー獲得回数89

ポイント18pt

サーバサイドで行います。

絶対的な方法ではありませんが、よく使われる方法を以下に記します。


クライアントからのリクエストに付いてくるUSER_AGENTを参照し、ブラウザの言語を判定します。

その言語に応じた文字列及びエンコード方式(これ重要)を応答します。


Javaであればサーブレットを使います。「HTTPヘッダーの取り扱い」を参考にしてください。

id:Web-Production

>クライアントからのリクエストに付いてくるUSER_AGENTを参照し、ブラウザの言語を判定します。

その言語に応じた文字列及びエンコード方式(これ重要)を応答します。[…]Javaサーブレットを使います[…]HTTPヘッダーの取り扱い

具体的なご指針、ありがとう存じます。直接的に参考になり、助かります。

2011/01/13 21:26:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません