• 締切済み

コントローラの役割はJSPにはやらせないですよね?

コントローラの役割を、HttpServletだけでなくjspにやらせる構成も 正しい思想の1つなのでしょうか?? 「コントローラ」は、 基本「依頼と、依頼結果をもとにした次の依頼」をする。 という風に役割を捉えていました。 例えば Aに処理依頼をしたあと、 処理が成功したから今度はBに処理依頼をして、 その結果データが 1件以上だったらCに依頼をして、 0件だったら次はDに処理を依頼する。 のような。 そして、それはHttpServletのところにやらせるものなのかと捉えています。 (※間違っているのかもですが。。) しかし、 書こうと思えば、サーブレットを撤廃して、 画面遷移は、x.jsp ⇒ y.jsp ⇒ z.jsp と、サーブレットを介さずにチェーンを作ることも可能だと思います。 (1)そういう仕組もわりと一般的なのでしょうか? (2)jspになんでもやらせすぎると、それぞれのソースが、 ◆A:プレゼンテーション層としての処理なのか?(イテレータでの描画とか) ◆B:ファンクション層の処理なのか?(例えば入力チェック処理など) ◆C:コントローラ層の処理なのか? (各結果を元に、次にどこの処理にどういうデリゲートするのか等処理) がパッと分かりにくく、カオスになりやすいと思っています。 そんな風になるくらいだったら、 コントローラはサーブレットにさせた方が良いと思うのですが、あえて全てJSPにさせるメリットもあったりするのでしょうか? ◆確認 画面遷移は、コントローラの役割だと思っていたのですが、 もしかしたらそこが間違っているのでしょうか? (WEB系の開発かどうかでも違うのかもですが。) .

  • Java
  • 回答数14
  • ありがとう数9

みんなの回答

回答No.14

>JSF(JavaServer Faces)の基本 >https://blog.pepese.com/entry/20131211/1386757110 > >>コントローラ(C) >>FacesServletというサーブレットを使う >>実装不要 >>設定は「faces-config.xml」で行う >良く分からないがFacesServlet自体はプログラマーが記述する必要は無いような感じ(プログラマーが記述してはならないと思われる)。 >プログラマーはfaces-config.xmlにザックリと言うと恐らくページの遷移ルールを記述すれば、そのとおりにFacesServletが動作するのだろうと思われる。 >つまり、ザックリと言うと恐らくfaces-config.xmlはFacesServletに指令を出す「ページ遷移ルール」言語を記述するのだろうと思われる。 つまり、FacesServletは完成されたコントローラであり、faces-config.xmlの「ページ遷移ルール」言語をInterpret(インタープリット)して、ページを遷移すると思われる。 つまり、ザックリと言うとFacesServletは「ページ遷移ルール」言語を解釈して動作するInterpreter(インタープリター)と考えれば分かりやすい。

paranoia23
質問者

お礼

ページ遷移のコントロールができるみたいですね!

回答No.13
paranoia23
質問者

お礼

今度書いてみます

回答No.12

JSF(JavaServer Faces)の基本 https://blog.pepese.com/entry/20131211/1386757110 >ビュー(V) >FaceletsとEL式で記述されたxhtmlファイル >FaceletsはJSFで使うタグライブラリ >http://docs.oracle.com/javaee/7/javaserverfaces/2.2/vdldocs/facelets/ >EL式はシャープと中括弧(#{hoge})で囲った式 EL式については下記参照。 Faceletsを書く時のEL式まとめ http://yoshiyuki9026.hatenablog.com/entry/2017/03/27/200403

paranoia23
質問者

お礼

今度書いてみます

回答No.11

JSF(JavaServer Faces)の基本 https://blog.pepese.com/entry/20131211/1386757110 >コントローラ(C) >FacesServletというサーブレットを使う >実装不要 >設定は「faces-config.xml」で行う 良く分からないがFacesServlet自体はプログラマーが記述する必要は無いような感じ(プログラマーが記述してはならないと思われる)。 プログラマーはfaces-config.xmlにザックリと言うと恐らくページの遷移ルールを記述すれば、そのとおりにFacesServletが動作するのだろうと思われる。 つまり、ザックリと言うと恐らくfaces-config.xmlはFacesServletに指令を出す「ページ遷移ルール」言語を記述するのだろうと思われる。

paranoia23
質問者

お礼

ページ遷移のコントロールができるみたいですね!

回答No.10

>>どうやらJSF(JavaServer Faces)はフレームワークで、そのフレームワーク内に「Faces Servlet、Managed Bean」の2つのJava言語仕様が有るようです。 >>つまり、サーバー・サイドJavaには、JSP(JavaServer Page)、Servletについては「Java Servlet、Faces Servlet」、(サーバー・サイドJava)Beanについては「EJB(Enterprise JavaBeans)、Managed Bean」が有ると言う事になります。 >>「ManagedBeanは次のJSFバージョンで無くなる予定だ」そうですので ご注意下さい。 >現在は、JSP(JavaServer Page)ではなくJSF(JavaServer Faces)フレームワークのFacelets(XHTML)が推奨されていると思われます。 JSF(JavaServer Faces)フレームワークを使うなら、当然(Java Servletでは無く)Faces Servletが採用されます。 JSF(JavaServer Faces)の基本 https://blog.pepese.com/entry/20131211/1386757110 >JSF2.2のMVCは以下の通り。 >モデル(M) >CDI(Context Dependency Injection)で管理されたオブジェクト >クラスに「@Named」ってアノテーションをつけるとCDIコンテナで管理される >CDIの設定は「bean.xml」で行う(無くてもアノテーションだけでなんとかなるみたい) >ビューからはEL式で呼び出せる >JSFのビューから呼び出されるコンポーネントを「JSFマネージドBean」って呼ぶみたい >ビュー(V) >FaceletsとEL式で記述されたxhtmlファイル >FaceletsはJSFで使うタグライブラリ >http://docs.oracle.com/javaee/7/javaserverfaces/2.2/vdldocs/facelets/ >EL式はシャープと中括弧(#{hoge})で囲った式 >コントローラ(C) >FacesServletというサーブレットを使う >実装不要 >設定は「faces-config.xml」で行う http://www.oracle.com/technetwork/jp/ondemand/branch/wls12c-1524119-ja.pdf >Servlet3.0 > > アノテーションによるプログラミング >  従来、web.xmlへの記述が必要だった構成情報をアノテーションで指定することが可能になりました。 > > Webフラグメント >  ライブラリの設定をweb.xmlではなくwebfragment.xmlというファイルに記載し、ライブラリ自身で保有しておくことが可能になりました。 >JSF2.0のFacelets >• JSF1.2までは、ユーザインターフェースとなるビュー層にJSPを利用するアーキテクチャでしたが、JSPはサーブレットに変換、コンパイルされて実行時にビューを生成するためオーバーヘッドが高く、効率的な仕組みとはいえませんでした。 >• JSF2.0では、Faceletsというコンポーネントを提供しています。Faceletsではビュー層にXHTMLを利用するアーキテクチャになるため、ビュー生成のオーバーヘッドは低く、かつテンプレートなどの機能を活用することが可能になっています。 >• また、faces-config.xmlで複雑な設定を行わずに、アノテーションを使いManagedBean等を定義できるようになっています ↑「ManagedBeanは次のJSFバージョンで無くなる予定だ」そうですので ご注意下さい、良く分からないが「CDI(Contexts and Dependency Injection)/EJB(Enterprise Java Beans)」で そのアノテーションが記述できると言うことだろうか? web.xmlについては下記参照(現状ではwebfragment.xmlが推奨されている)。 web.xmlの記述 https://www.javadrive.jp/servlet/context/index3.html >web.xmlファイルにはServletの呼び出し方や初期値などの設定を記載するようになっています。 faces-config.xmlについては下記参照(ザックリと言うと恐らくページの遷移ルールだろうと思われる)。 JSF 2.0 の詳細について https://yoshio3.com/2012/08/24/ >JSF の内部アーキテクチャについて紹介します。クライアント(ブラウザ)から HTTP リクエストをサーバに対して送信すると、Faces Servlet がリクエストを受信します。Faces Servlet は JSF に関する設定 (faces-config.xml の設定ファイル) を読み込み、各種機能、設定、プロパティ等を読み込みリクエストに対する処理を行います。 >JSF 2.0 から faces-config.xml ファイルは省略可能(オプション化)となり、faces-config.xml ファイルで記載していた設定項目についてはプログラム中のアノテーションで記載できるようになりました。Faces Servlet がリクエストを受信した後、適切なコンテンツに対してリクエストをリダイレクトします。

回答No.9

>どうやらJSF(JavaServer Faces)はフレームワークで、そのフレームワーク内に「Faces Servlet、Managed Bean」の2つのJava言語仕様が有るようです。 >つまり、サーバー・サイドJavaには、JSP(JavaServer Page)、Servletについては「Java Servlet、Faces Servlet」、(サーバー・サイドJava)Beanについては「EJB(Enterprise JavaBeans)、Managed Bean」が有ると言う事になります。 >「ManagedBeanは次のJSFバージョンで無くなる予定だ」そうですので ご注意下さい。 現在は、JSP(JavaServer Page)ではなくJSF(JavaServer Faces)フレームワークのFacelets(XHTML)が推奨されていると思われます。

回答No.8

どうやらJSF(JavaServer Faces)はフレームワークで、そのフレームワーク内に「Faces Servlet、Managed Bean」の2つのJava言語仕様が有るようです。 つまり、サーバー・サイドJavaには、JSP(JavaServer Page)、Servletについては「Java Servlet、Faces Servlet」、(サーバー・サイドJava)Beanについては「EJB(Enterprise JavaBeans)、Managed Bean」が有ると言う事になります。 「ManagedBeanは次のJSFバージョンで無くなる予定だ」そうですので ご注意下さい。

回答No.7

JSF 2への第一歩 https://builder.japan.zdnet.com/sp_oracle/35040792/ >Model:Managed Bean、またはCDI(Container Dependency Injection) ↑「ManagedBeanは次のJSFバージョンで無くなる予定だ」そうですので ご注意下さい、これからは「CDI(Contexts and Dependency Injection)/EJB(Enterprise Java Beans)」が主流になると思われます。 JavaEE使い方メモ(CDI) https://qiita.com/opengl-8080/items/431de9175dca33a09ba8 >CDI とは >Contexts and Dependency Injection の略。 >Java EE 7 には ver 1.1 が含まれている。 >JSR は 346。 > >DI (依存性の注入)に加えて、管理しているインスタンスのスコープの管理まで行ってくれる。 > >CDI 誕生の経緯と JBoss Seam の変遷 >CDI は、 JBoss が提供していた独自フレームワークである Seam が前身となっている。 > >Seam は日本語で「継ぎ目」という意味。 >Java EE 5 の頃の JSF と EJB をシームレスに連携させることを目的に作られたのが、この Seam というフレームワーク。 > >この Seam の中で、 DI やコンテキストの管理を担っていたコアの部分が抽出され、 JSR として標準化されたものが CDI 1.0 (JSR299)になる。 >参照実装は Weld で、 Red Hat によって開発されている。 > >JSR299 は Java EE 6 に取り込まれ、標準仕様となった。 > >コア部分が標準仕様として EE に取り込まれたあと、 Seam は CDI の拡張機能を提供するフレームワークとして開発されることになった(Seam 3)。 >しかし、同じように CDI を拡張するサードパーティのフレームワークは、他にも存在していた(Apache MyFaces CODI、CDISource)。 > >せっかく CDI という形で仕様を一本化したのに、このままだと結局また分岐が進んでいくことになる。 >このことを危惧した各フレームワークのコミュニティは、これらのフレームワークを1つにまとめ、新しく Apache DeltaSpike という Apache プロジェクトを立ち上げることにした。 > >現在は、この Apache DeltaSpike というプロジェクトで CDI の拡張機能が実装されている(例えば、 EE 6 環境でも EE 7 相当の機能 @Transactional とかが使えるようになる拡張機能とか)。 > >今後の CDI >はじめは JSF と EJB を繋ぐ目的で導入された CDI だが、 EE 7 ではそれ以外にも様々なコンポーネントを連携させる役割を担うようになっている(JAX-RS、Bean Validation などなど)。 > >今後も、 CDI を利用した連携の強化は進められていくらしい(Java Day Tokyo 2015 より)。

回答No.6

JSF 2への第一歩 https://builder.japan.zdnet.com/sp_oracle/35040792/ >JSF 1からJSF 2へのバージョンアップにおいて、どのような点が変更されたのだろうか >そもそもWebページのデザインは、Webアプリケーションのライフサイクルを通じて何度も変更されるものだ。そのため、Webアプリケーション開発者はその都度、Webデザイナーが修正したHTMLファイルに対してJSPコードを追加し、修正したWebページをプレビューする際にはいったんWebページ(JSPファイル)をコンパイルする必要があるなど、作業効率が悪いという問題を抱えていた。 >JSP 2では、この問題を「Facelets」の導入によって解決している。Faceletsとは、XHTMLをベースにしたテンプレート技術であり、これによってWebデザイナーとWebアプリケーション開発者が1つのXHTMLファイルに対し、それぞれ次のような具合に互いの作業を阻害することなくWebページの作成が行えるようになっている。 >JSF 2によるWebアプリケーションは、次に挙げる3つの要素から構成される。 > >Controller:Faces Servlet >View:XHTML(Facelets) >Model:Managed Bean、またはCDI(Container Dependency Injection) JSF 2.0 の詳細について https://yoshio3.com/2012/08/24/detail-of-jsf20/ >JSF は MVC アーキテクチャに基づく開発を行います。モデル部分を JSF の Managed Bean (もしくは CDI) を使って実装し、ビュー部分を JSF の Facelets (xhtml)、コントローラ部分を Faces Servlet で担当し実装を行っていきます。どの URL に対してリクエストが来たのか、どのビューのページで処理を行うのか等のコントロールを Faces Servlet が行いますが、この Faces Servlet は web.xml 設定ファイルに設定を行った後は、プログラマは直接この Servlet に対して操作を行う事はありません、実際にプログラマが開発を行う際には、ビューの部分とモデルの部分を中心に開発を行っていきます。

回答No.5

JavaServer Faces https://ja.wikipedia.org/wiki/JavaServer_Faces >JSF 2.2(2013年5月21日) : HTML5の対応、テンプレートを切り替えるリソース・ライブラリ・コントラクト、画面遷移を管理するFacesフロー、サーバー側でコンポーネントツリーを保持しないステートレス・モードの追加、といった変更が加えられている。 JSPはもう古い?Faceletsとは https://ti-tomo-knowledge.hatenablog.com/entry/2018/06/14/161613 >当初JSFはビューを記載する方法として、アクションベース(URLによってサーバ側の処理を決定する)で動作するJSPを使っていましたが、 >バージョン2.0以降はFaceletsが標準仕様内に組み込まれ、サーブレットと組み合わせずに動作をさせることができるようになりました。

paranoia23
質問者

お礼

アクションによっては、 リクエストを飛ばさすにクライアントで完結させられたら嬉しいですが、具体的な実装イメージまでたどり着けませんでした。 それができるならいいですね!

関連するQ&A

  • HttpServletとjsp負荷はどっちが高い?

    ◆全く同じ処理をさせたとき、サーバーの負荷は変わるのでしょうか? Aの処理のあと、Bの処理をして、その後Cの処理をさせるとき、 (1)HttpServletを継承したクラスから呼ぶか? (2)jspで呼ぶか? でサーバ負荷は変わるのでしょうか? ファッション層の処理を、 案1◆コントローラ層部分が呼んで、結果を踏まえて処理制御して、、  という形にするか? ファッション層の処理を、 案2◆View層部分に呼ばせるか? で、パフォーマンス観点で、どう判断すれば良いかわからず困っています。 ※もし良ければ「構成」の観点でも、何か「こうあるべき」的なものがあると、それもご教授頂けますと幸いです。 .

  • サーブレットは広義・狭義があるのか?

    「サーブレット」という言葉は、 文脈によって以下のそれぞれを指しますでしょうか? wikiなど「定義」としては一応あるわけですが、 その場の空気で、 (1)HttpServletを継承したコントローラ層部分 (2)サーバにletさせている部分(モデルとコントローラの両方) (3)サーバにletさせている部分(view(jsp)からモデルに処理をletさせているという場合に、jspがプレゼンテーション層以外も含んでしまい、サーバにletさせている部分=コントローラ+モデル+ビュー(すべて)) の何を指しているか、事実上変わるということであってますでしょうか? wikiなど「定義」としてはあるわけですが。。

  • サーブレットからJSPへフォワード 画像が・・・

    サーブレットからJSPへフォワード 画像が・・・ javaの勉強をしながらサーブレットやJSPを使ったページを作ってるのですが、サーブレットで処理を行った後にJSPへ sc.getRequestDispatcher("/index.jsp").forward(req, res); で転送したら画像が表示されません。 JSPで記述したページを直接開いたりresponse.Redirect(URL)で遷移した場合は画像もちゃんと表示されます。画像だけではなくスタイルシート等も読み込んでいないようなのです・・・orz どうしたらいいのでしょうか? 【ファイル構成】 [プロジェクトフォルダ]  JSPファイル(.jsp)  [image]   画像ファイル  [style]   スタイルシート  [WEB-INF]   [classes]    サーブレットファイル(.class)

    • ベストアンサー
    • Java
  • javaサーブレットでjspへのフォワード処理と、ファイルに出力処理を行いたいのですが。。

    今javaサーブレットとjspでツール作成中です。 DBにアクセスして、その内容をCSVファイルに書き出すというツールなのですが、サーブレットではjspにフォワードという処理と、ファイルに出力という処理の二つを同時に行うことができるのでしょうか。 たくさんの本やサイトにそれぞれ片方の処理だけする場合は載っているのですが、両方を並行して処理させる場合のサーブレットの書き方がわかりません。。 jspからの情報をもとにサーブレットでDAOを生成、DBにアクセスし、検索結果をDTO(一行の情報はBean)に格納し、それをサーブレットからjspにフォワード&CSV出力というものを作りたいと思っています。 よろしくお願いします。

  • JSP、サーブレットの初期処理

    最初に、あるページをアクセスした時に、 サーブレットで最初の1回目のアクセス時のみ特定の処理をする。 その結果をJSPに返す という事を行いたい場合、 どのような関数(仕組み)? を利用すれば良いのでしょうか? また、その場合にあるイベント(ボタン押下等)でも 初期処理の処理を行う と言う事は可能でしょうか? (関数コールなどで初期処理と同じ箇所に書かれたソースを利用したい) JSP、サーブレット初心者です。よろしくお願いします。

    • ベストアンサー
    • Java
  • Servlet+JSPを使ったWEBアプリ構造について

    現在TOMCAT6.xにて生産管理システムの前段として在庫管理システムを開発しようとしています。雛形等は無く1から作成していこうと思っているのですが、システム全体の構造をどのようにするか結論が出ていない状況です。別の開発で行った構造をベースにしようかとも考えてもいます。プロジェクトメンバーと話し合った結果、2つに分かれました。 でも共通部分は同じ所があり、MVC構造(本来とは違うかもです)という所までは一緒です。 その2つの案とは、 (1)1つの機能毎(若しくは画面単位)に1つのコントローラー(サーブレット)を持たせ、そのサーブレットからモデルのインスタンス化及びDBへのアクセス(ここはもしかしたらマネージャークラス、若しくはDAOを持たせてそこで処理)を行ったり、結果をレスポンスするJSPを呼び出したりする方法。 (2)1つのサーブレットだけ作成し、そこからJSPを直ぐに呼び出し、JSPにてモデルやDBへアクセスしたりするDAO及びマネージャクラスの生成をし業務処理した後、そのJSP上で結果を返す方法(要はFrontControllerパターン)。 これは、今回に限らず他のシステムではどのような構造になっているのか、とても興味があります。 (1)がベストなのか(2)がベストなのか、はたまた「うちのシステムでは、こっちのほうがトレンドで用いてますよ」というご意見を頂ければ助かります。 本来なら、私が知っている限りの中で(1)と(2)のメリットとデメリットを書くべきかと思いますが、素のままのご意見をいただければと思います。 宜しくお願いします。

    • ベストアンサー
    • Java
  • サーブレットからJSPへ情報を渡す

    サーブレットからJSPへ情報を渡すことについて質問がございます。 ■質問は、ブラウザからサーブレットにリクエストして      モデルからデータを取り出しJSPがモデルを参照して      ブラウザに結果を表示し、ブラウザの画面のボタンを      クリックすると、またサーブレットにリクエストが      いくようにしたいのですが、      そのJSPから二度目のサーブレットへのリクエスト及び      リクエストする際にデータを渡すのですが、      JSPからサーブレットへ飛んでくれず404エラーがでます。      ★どうしたら、JSPからサーブレットへ飛んで       くれるでしょうか? ■簡単な流れでかきますと   リクエスト(hidden value="patu") ブラウザ  →  サーブレット  →  モデル ←→ テキスト           ↓           ↑(参照)   ブラウザ ← ← JSP →→→→→  上記の流れは一回の流れですが、次JSPからまたサーブレットへ  actionし、(hidden value="patu")をして同じ流れを  くりかえしたいのです。 ■JSPではどのようになっているかと申しますと <form action="http:://localhost:8080/sotu/TextServlet"method="POST"> <input type="image" src="NEXTquiz.gif" value="次の問題"     onclick="http://localhost:8080/sotu/TextServlet'"> <iuput type="hidden" name="patu" value="yonyc.getPatu()"> </form> となっております。 ■サーブレットでは protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {  String kye = request.getParameter("patu");//value受け取り MondaiSC mondaisc = new MondaiSC(); //モデルクラス生成  mondaisc . mondaisc.DefaultQuiz(kye, i); //モデルにキーを渡す ArrayList textList = mondaisc.getTextList();  //モデルクラスからテキストの情報が入っているArrayListを受ける り  HttpSession session =request.getSession();//sessionに入れる  session.setAttribute("text",textList);  RequestDispatcher rd =getServletContext().getRequestDispatcher("/yomi.jsp"); } このyomi.jspからまたサーブレットへ同じリクエストをおくりたいの です。  ところが飛んでくれません。  恐らく、JSPでの記述の仕方に問題があるのではないこと思っており ますが、どなたかアドバイスをお願い致します。  宜しくお願い致します。

    • ベストアンサー
    • Java
  • JSPとサーブレットでのJARの使い方

    現在,jspやサーブレットにダウンロードしてきたjarの中のクラスを使おうとするとエラーをはいてしまいます。自分的にはエラーの原因はなんかしらの設定かソースがおかしいのではないかと考えております。なので自分がやった設定の手順とソースを説明させていただき、そこでおかしいと思った点を指摘していただきたいと思い投稿させてもらいました。 開発環境はEclipseとTomcatを合したものなのですが、 まずダウンロードしてきたJARをデスクトップに置きました。 次にEclipseでjspのプロジェクトを作成し、 プロジェクトの設定で、外部JARの追加を選択しデスクトップのJARを追加しました。 次にエラーが出るまでのソースを説明させていただくと、 まずJSPの方は <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <%@ page import="java.util.Date" %> <%@ page import="com.lowagie.text.Document" %>//これがダウンロードしてきたjarのクラス この様に書いたところEclipseのエディタ上ではエラーは出ないのですが、 デバックすると、 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: というエラーが出てしまいます。なお4行目をコメントアウトすると正常に動作します。 次にサーブレットの方は import java.io.*; import com.lowagie.text.Document;//こっちはこのimport文ではエラーが出ない import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class selfreport_Pdf extends javax.servlet.http.HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Document doc = new Document();//ここでエラーがでる こちらもEclipseのエディタ上ではエラーは出ないのですが、デバックして jspからサーブレットにsubmit(?)をすると 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました 原因 java.lang.NoClassDefFoundError: com/lowagie/text/Document selfinfo.selfreport_Pdf.doGet(selfreport_Pdf.java:29) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) この様なエラーが出ます。なおこちらはDcoment doc = enw Docment() の処をコメントアウトすると、正常に動作します。またこのプログラムを 最も基本的なjavaアプリケーションに落とし込んで実行すると、正常に動作します。 また自分はjsp初心者なので、何か書き損じている点があるかもしれません。 もしそのような点があった場合はお手数ですが書いていただけると、後で補足させていただきます。 お返事おまちしております。

    • ベストアンサー
    • Java
  • 静的ページからのサーブレット起動について

    今、JSPとサーブレットの勉強を行っております。 サーブレット側でデータを取得して JSP側で表示を行いたいと思っているのですが フォームアクション等を行わずに、JSP⇒サーブレット⇒JSPと 実施する事は可能でしょうか? URLアクセス ⇒ JSPからサーブレットの処理を呼び出し ⇒ サーブレットから クラスを利用してデータを取得 ⇒ JSPへデータを渡して表示   というように、URLアクセスのみで一連の処理を行いたいです。 サーブレットからJSPにセッション経由でデータを渡して表示する事や JSPからクラスを利用する方法では成功していますが できるだけMVCモデルに準拠した方法で行いたく思っており かつ、コントローラとしてサーブレットを使ってみたくて このような事に挑戦しております。 可能かどうかだけでもわかると非常に有難いですので ご存知の方、どうかよろしくお願い致します。

    • ベストアンサー
    • Java
  • JSPのデバッグの方法がわかりません。

    JSPのデバッグの方法というのは一般的にどのようにされるのでしょうか? サーブレットの方は、部分部分にSystem.out.println()を記述してうまくその処理が走っているかを確認しているのですが、JSPだと下記のような   --------------------------------------------------- Error: 500 Internal Servlet Error: javax.servlet.ServletException at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:461) at SyainMenteWeb._0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12._jspService(_0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12.java:973) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130) (一部略) Root cause: java.lang.NullPointerException at SyainMenteWeb._0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12._jspService(_0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12.java:127) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) (一部略) ------------------------------------------------------------------- エラーが出てしまい、どの辺でエラーが発生したのか特定できません。 なにかデバッグする良い方法はないでしょうか? よろしければご教授お願い致します。

専門家に質問してみよう