2011-01-24 5 views
1

url/xxx/yyy/zzzをクラスXxxYyyZzz.javaに自動的にマップするサーブレットまたはフィルタを作成したいとします。以下のURLは、次のJavaクラスにマップされます。例えば/xxx/yyy/zzzをクラスXxxYyyZzz.javaに動的にマップするサーブレットまたはフィルタ

  1. サーブレットまたはフィルタが持っている必要があります。

    /comment/add --> CommentAdd.java 
    /comment/delete --> CommentDelete.java 
    /comment/view --> CommentView.java 
    /search --> Search.java 
    /viewposts --> Viewposts.java 
    

    また、サーブレットまたはフィルタは、2つの追加要件を遵守しなければなりません"/ *"のサーブレットマッピング、いくつかのサーブレット "/ comment/*"、 "/ search"などの接頭辞は必要ありません。

  2. 多分、/*のサーブレット・マッピングによって、JSP処理をオーバーライドできないようにする必要があります。つまり、クラスが見つからない場合は、jspページが存在するかどうかを確認して実行する必要があります。

これはサーブレットAPIを使用してどのように行うことができますか。その仕事をしているどのフレームワークも私に言わないでください。コードを教えてください。

マップされるクラスは、コマンドパターンに従うか、HttpServletのサブクラスになる可能性があります。どちらの場合も、 "execute(HttpServletRequest request、HttpServletResponse response)"のようなメソッドが存在する必要があります。このメソッドは、URLにアクセスし、単一のサーブレットまたはフィルタを使用してjavaクラスを把握すると自動的に実行されます。

+0

関連:http://stackoverflow.com/questions/3541077/design-patterns-web-based-applications/ – BalusC

答えて

2

あなたが何を意味するのか分かりません。私がした場合:

「/」にマッピングされた単一のサーブレットを書くだけで、何も得られません。 PATH_INFOを解析する(Javaでどのように呼び出されるか分からない)、Class.forNameを使用する(またはあらかじめ塗りつぶされたMapを使用する)メソッドの実行を呼び出す。

+0

['HttpServletRequest#getPathInfo()'](http://download.oracle.com/javaee/) 6/api/javax/servlet/http/HttpServletRequest.html#getPathInfo%28%29)です。 – BalusC

+0

はい、サーブレットのweb.xml設定と、マップされていないクラスのJSPページへのルーティングをどのように処理する必要がありますか。 –

+0

今のところ答えは正しいですが、まだサーブレットを/ *にマップして、JSPを処理できる必要があります。私はこれを別の質問で尋ねるでしょう。 –

関連する問題