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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

1回答

1137閲覧

Jettyで直接HTMLを出力しないWebサービスを作るのに適したツールはありませんか

presente

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

0クリップ

投稿2018/02/25 08:42

Jettyを使った簡単な社内向け検索エンジンを作るのにお勧めのツールは何がありますか

社内向けの簡単な検索エンジンを作っています。社内向けのですので、セキュリティなどの要件は今回は無視できるものとします。

私はWebデベロッパではないのでWeb系の知識がほとんどありません。Jettyを使っているのは、社内のHBaseにアクセスするのにJavaが向いているということで、それ以上の理由はありません。現在、バージョン1が稼働中で、当初の予想より好評で次々に機能追加の依頼が来ています。

JavaのSystem.out.println()でHTMLのコードをゴリゴリ出力していくのはメンテナンス性が悪く、改善したいと思っています。自分の書いたコードであるにも関わらず、このHTMLがどのように作られているのかわからなくなってきました。Javaはヒアドキュメントもないので、ソースコードにHTML片を埋め込んでいます。これを何とかする、ロジックとビューを切り分けることをしたいと思っています。

想像ですが、JettyからはJSONでデータを返し、それとは別に静的なHTMLを作っておき、該当箇所だけ受け取ったJSONを元に変更するような仕組みがあればよいと思います。そのために色々キーワードを探してみました。

  • React
  • AngularJS
  • jQuery
  • サーバサイドレンダリング
  • テンプレートエンジン (Thymeleaf等)

私には最近のWeb開発の基礎知識がないので、これらがどういうものかきちんと理解していません。今回の用途の場合はこれを調べればよいという指針を教えていただければ幸いです。例えば、この用途にはReactは大げさすぎるので不要で、〜を使うのがお勧めであるといったことです。方向が決まれば、あとはその関連情報を調べてみます。

検索システムの概要

画面には検索窓が1つ、あとはいくつかプルダウンメニューやボタンがあります。検索窓にクエリを入れて検索ボタンを押すと、GETリクエストが飛んで、Jetty側でHBaseにアクセスしてデータを取得します。このデータをJetty側で処理、加工をして、最終的にHTMLを出力します。表示されるのはいくつかの表です。それほど複雑な出力ではありませんが、機能追加の要望が増えてきているので徐々に面倒くさくなってきました。

既にJettyで動いている検索エンジンがあるので、全面的な作り直しをしないようにしたいと思います。現状のSystem.out.println("<table>");などが山ほど書かれているコードのメンテナンス性を上げることが目的です。

いくつかはキーワードを頼りに探してみたのですが、npmを使って〜などと出てくると、もしかするとこれは必要以上に難しいことを調べているのではないかと不安になってきました。npmのこともよく知りませんが、これはNode.jsのパッケージマネージャだったと思います。しかし、Webサーバ部分はJettyで動いていますので、これはできるだけ変更しないようにしたいと思います。

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

現状のSystem.out.println("<table>");などが山ほど書かれているコード

が現在でも生き残っていることに驚愕しますが、それはさておき、サーブレットから直接HTMLを出力するのをやめたいのであれば、JSPを使えば特別何もライブラリを追加することなく実現できるのではないでしょうか。

投稿2018/02/25 12:45

A-pZ

総合スコア12011

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

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

presente

2018/02/28 17:37

ありがとうございます。JSPでやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問