- PR -

サーブレット処理をJSPで

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2003/08/28
投稿数: 28
投稿日時: 2003-10-10 12:26
こんにちわ。java初心者で基本中の質問をしたいので、レスを宜しくお願いします。
よく、本や・ネットでソースのサンプルが落ちています。これらは、ほとんどが
HttpServletクラスを継承したクラスを作成しその中でdoGet()、doPost()処理などを
書いていると思います。
しかし、実際の開発を行っていく時には大抵どのシステムでも既にフレームワークが
存在していると思います。そして、その中にはHttpServletクラスを継承した何らかの
クラスが作成されていると思います。自分が調べた所では、servletは基本的に1つしか
作れないとありました。
こうした条件の中で例えば、新規の機能を追加をするときにはどのようにすれば良いのでしょうか?
例えば、ダウンロード機能を新たに追加しようとします。この時、よくあるソースとしましては
public class Temp extends HttpServlet{
}を作成し、この中のdoPost()メソッド内で
// ファイル内容の出力
ServletOutputStream out = response.getOutputStream();
FileInputStream fin = new FileInputStream(ファイル名);
といった処理を行っているものがあります。
しかし、こういった処理をサーブレット内で書くのではなくJSP内で書き、同じ処理を
させることは可能なのでしょうか?
もし、可能であればどのように実装すれば良いのでしょうか?
宜しくお願いします。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-10-10 12:53
引用:

しかし、実際の開発を行っていく時には大抵どのシステムでも既にフレームワークが
存在していると思います。


 必ずしもフレームワークを採用しているとは限りません。
結構ありますよフレームワークを採用しないプロジェクトって。

引用:

そして、その中にはHttpServletクラスを継承した何らかの
クラスが作成されていると思います。自分が調べた所では、servletは基本的に1つしか
作れないとありました。


何を根拠にサブレットはひとつしか作成できないとおっしゃっていますか?
当然ですがサーブレットはいくつでも作成できます。

引用:

しかし、こういった処理をサーブレット内で書くのではなくJSP内で書き、同じ処理を
させることは可能なのでしょうか?
もし、可能であればどのように実装すれば良いのでしょうか?


JSPは所詮サーブレットです。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2003-10-10 13:01
あるいは ServletでJSP等のデータ受け取り及び画面遷移
ビジネスロジックはBeanにやるのが一般的では 拡張するばあい
Servletを追加するというのもよいですが、処理するBeanに追加処理
を記述したり新たなBeanを作成してそいつに任せるとか
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-10-10 14:44
>クラスが作成されていると思います。自分が調べた所では、servletは基本的に1つしか
>作れないとありました。
「Servletは基本的に一つしか作られない」ではないでしょうか?
多くのコンテナでは一つのサーブレットにつきインスタンスを一つだけ生成して複数のスレッドで使い回します。
->明示的にマルチスレッドで実行されないためのインターフェース、SingleThreadModel というのもありますが、あまり使う場面はないかも
複数のサーブレットをデプロイすればそれぞれインスタンスができますので、コンテナでサーブレットが一つしかデプロイできないという意味ではないです。
好きな処理をサーブレットなり JSP なり好きなところに書いてください。
ニシトミ
ベテラン
会議室デビュー日: 2003/04/24
投稿数: 76
お住まい・勤務地: 千葉・東京
投稿日時: 2003-10-10 14:52
ニシトミです
こんにちは

多分zzzさんは、
J2EEパターンのService To Workerパターンのことを
言ってるんだと思いますが。

解決のヒントになればいんですが
1

スキルアップ/キャリアアップ(JOB@IT)