ウェブ制作するにあたって、
<h#>~</h#> や <p>~</p> <a href="*">~</a> の内容など、
見出しや本文など、「内容の文字列」は、MySQLのレコードとして保存しておいて、
HTMLファイル(閲覧用)、PDFファイル(印刷用)などのように、
用途に応じて最適な形式に出力したり、
MySQL内に言語別の文字列を(UTF-8で)用意しておいて、
閲覧者のブラウザの設定言語などに応じて出力するように
したいと思います。
このような場合、世のウェブ制作者様方はどのような手法を用いるのでしょうか? JavaScript でできるでしょうか? それとも、サーバーサイドJava などのような、より複雑な手法が必要でしょうか?
できれば、テンプレートなどもMySQLに保存しておきたいと思っております。
イメージとしては、MySQLのレコードが更新されると、サーバーサイドスクリプトなどが、適時HTMLやPDFファイルなどを書き換える、というような挙動です。
幅広い視点からのご意見を願います。
普通はPHPなど使うと表示部分はテンプレートとして分離しておきます。smartyなどが有名です。
CakePHPなどのMVCフレームワークを使っていてもやはり通常表示部は分離します。
通常、文字装飾までDBに入れることはありません。
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
>サーバ側に置かれるMySQLなどのデータベースから中身を取り出すためには、なんらかのサーバサイド・プログラミング言語の力を借りなければ
なるほど。
>webアプリケーションの開発方法について学習されることをオススメします
具体的な指針をありがとうございます。ウェブアプリはいずれ作れるようにならなければ、と思っていましたので、そういたします。
>ruby on rails […] Java & Struts
Javaにしようかと思います。Javaの知識には汎用性がありそうだと思われますので。
>大抵のWebアプリケーションフレームワークにはテンプレートエンジンという仕組みがあり
そうなのですか! それは良いですね。
色々とありがとうございます。大変助かりました。
ありがとうございます。
JavaScript だけでは、DBにアクセスしてデータを取り出すことができません。
サーバーサイドJava などの、サーバーサイドで動作するものが必要です。
サーバーのほうは、単にSQL文を受け取ったらデータをXML形式で返すようなインターフェースを
一個作っておけば、残りは、JavaScript だけでも実装は可能です。
しかしながらこのような方法は通常使われません。
JavaScript の方でいろいろなロジックを実装するのは煩雑になりがちだからです。
サーバーサイドJava(JSPも含む)のほうで実装します。
Javaでもフレームワークを使うのが主流です。
Seasar 2 徹底入門 SAStruts/S2JDBC 対応
竹添 直樹
もちろん、フレームワークを使わなくても、作れます。
>サーバーのほうは、単にSQL文を受け取ったらデータをXML形式で返すようなインターフェースを
一個作っておけば、残りは、JavaScript だけでも実装は可能です。
しかしながらこのような方法は通常使われません。
JavaScript の方でいろいろなロジックを実装するのは煩雑になりがちだからです。
サーバーサイドJava(JSPも含む)のほうで実装します。
Javaでもフレームワークを使うのが主流です。
プロのご視点からのご助言、大変参考になります。ありがとうございます。
サーバサイドで行います。
絶対的な方法ではありませんが、よく使われる方法を以下に記します。
クライアントからのリクエストに付いてくるUSER_AGENTを参照し、ブラウザの言語を判定します。
その言語に応じた文字列及びエンコード方式(これ重要)を応答します。
Javaであればサーブレットを使います。「HTTPヘッダーの取り扱い」を参考にしてください。
>クライアントからのリクエストに付いてくるUSER_AGENTを参照し、ブラウザの言語を判定します。
その言語に応じた文字列及びエンコード方式(これ重要)を応答します。[…]Javaサーブレットを使います[…]HTTPヘッダーの取り扱い
具体的なご指針、ありがとう存じます。直接的に参考になり、助かります。
ありがとう存じます。
私はPHPができませんので、Java系の技術で何とかしたいのですが…