みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

tomcat上のservletからapache上のhtmlへ

現在tomcatにrss.java(コンパイル後class)
と言うファイルがあります。

rss.java
-------------------------------------------
package to.msn.wings.chap4;

import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.fetcher.FeedFetcher;
import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;

public class RssParse extends HttpServlet {
private static final String URL= "http://honyararahonyarara/index20.rdf";

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
FeedFetcher ff = new HttpURLFeedFetcher();
SyndFeed feed=null;
try {
feed = ff.retrieveFeed(new URL(URL));
} catch (Exception e) {
throw new ServletException(e);
}
HashMap<String, String> map = new HashMap<String,String>();
for(SyndEntry entry : (List<SyndEntry>)feed.getEntries()){
map.put(entry.getTitle(), entry.getLink());
}
request.setAttribute("feed", map);
this.getServletContext().getRequestDispatcher("http://localhost/html/rss.html").forward(request,response);
}
}
-------------------------------------------


またapache上にrss.htmlと言うファイルがあります。
rss.html
-------------------------------------------
<html>
<head>
<title>RSS情報の展開</title>
</head>
<body>
<h1 style="color:white;background-color:#525D76;font-size:22px;">
RSS情報の展開</h1>
<ul>
<c:forEach var="item" items="${requestScope['feed']}">
<li><a href="${item['value']}">${item['key']}</a></li>
</c:forEach>
</ul>
</body>
</html>
-------------------------------------------

tomcat上のservletからapache上のhtmlに値を渡し
表示させたいのですがうまくいきません。
お心当たりある方がいらっしゃいましたら
書込みをお願い致します。

投稿日時 - 2008-12-05 03:22:54

QNo.4530885

すぐに回答ほしいです

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

>servletのclassファイル→jspファイル→htmlファイル

servletのclassファイル→jspファイルはOKですが、
jspファイル→htmlファイルは不可というか、どういう意味でしょうか?

jspファイルはHTML記述+Java文法が使えます。主に表示機能を司るのが目的ですよね、つまり結果的にhtmlの文言をクライアントPCに返すわけです。

で、そのjspからhtmlを呼び出すというのは意味がありません。そのhtmlの内容をjspに含めればよろしいかと思います。

サイトについては「jsp」「tomcat]で検索するとたくさん出てきます。
jspについての基礎や役割について勉強されることをお勧めします。

投稿日時 - 2008-12-05 23:02:30

お礼

ご回答ありがとうございます!

>jspファイルはHTML記述+Java文法が使えます。主に表示機能を司るのが目的ですよね、つまり結果的にhtmlの文言をクライアントPCに返すわけです。
なるほど、表示機能はjspなんですね。
apacheとtomcatを連携させる理由がよくわからず
今回の質問に至りました。

結果として以下のようにしたら表示できました。

tomcatに配置
rss.class  rss.jsp

apacheに配置
1.html  2.html(php使用)  3.html
それぞれ4ページをリンクで結んでいます。

phpとservletを同時に使いたいと言うのも
あってうまく質問できませんでしたorz

今後はjspの基本から勉強したいと思います。
わかりにくい質問にご回答下さり
ありがとうございました!

投稿日時 - 2008-12-06 03:11:54

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

servletからhtmlに値を直接引き渡しはできません。
その代わり、jspを呼び出して値を引き渡すことができますので、jspについて勉強されるのが良いでしょう。

投稿日時 - 2008-12-05 08:04:00

補足

すみません補足させて頂きます。rss.htmlこちらのファイルは
tomcat内のフォルダにてjspファイルで格納した場合は
表示できており、今回はtomcatからapache上においた
htmlファイルもしくはjspファイルに
(apache上にjspを配置したときjspはjspとして
機能しますでしょうか?)
アクセスしたいと考えております。

apacheとtomcat連携をする際に
htmlなどの静的ファイルはapacheで処理し
tomcatはサーブレットの動的処理をするコンテナ
として機能するとどこかで読みましたので上記のような
設計をしなければならないのかと考えました。

投稿日時 - 2008-12-05 17:14:56

お礼

早速のご回答ありがとうございます!

>jspを呼び出して値を引き渡すことができます
こちらは以下のようなイメージであっておりますでしょうか?

servletのclassファイル→jspファイル→htmlファイル
(servlet/jspはtomcatに配置。htmlファイルはapacheに配置)

なにぶんjava自体始めて間もないので
質問がおかしいかもしれません。すみません。
こちら都合で申し訳ないのですが
緊急の事態でこの場をお借りしました。

またお心当たりや参考になりそうな
本、サイトなどありましたら書込みをお願い致します。
ありがとうございました!

投稿日時 - 2008-12-05 17:14:14

あなたにオススメの質問