2016-06-20 9 views
0

私はメインサーブレットを作成する方法について考えています。私は私のアプリケーションでサーブレット全体にアクセスしたいと思っているいくつかのプロパティを持っていて、それらを初期化したいと思います。私はそれがこのようなものかもしれないと思う:サーブレット、initと拡張

public abstract class MainServlet extends HttpServlet { 

    protected String errorURL = null; 
    protected String adminMenuURL = null; 
    protected String AdminLoginServlet = null; 
    protected String ValidateServlet = null; 

    // here, more properties and methods... 

    @Override 
    public void init() { 
     errorURL = context.getInitParameter("errorURL"); 
     adminMenuURL = context.getInitParameter("adminMenuURL"); 
     AdminLoginServlet = context.getInitParameter("AdminLoginServlet"); 
     ValidateServlet = context.getInitParameter("ValidatePicsServlet"); 
     // here, some more inits... 
    } 
} 

私は次のような新しいサーブレット...

public class AdminLoginServlet extends MainServlet { 

} 
  1. 前方AdminLoginServletに私の場合、希望のパラメータ(errorURL、adminMenuURLを作成する場合、など)を再度割り当てることができますか?
  2. AdminLoginServlet(とMainServletから拡張されたサーブレット)のinitメソッドをオーバーライドすると、これらのプロパティは決して割り当てられませんね。
  3. 私は何をするふりをしますか?

ありがとうございます。サーブレットは、第1のエンジンによって作成されたとき、これはinit()が呼び出される時点であるのでように

答えて

0
  1. 部材adminMenuUrlとは、割り当てられています。すべてのユーザ要求は、異なるスレッドで同じサーブレットインスタンスによって処理されます。サーブレットに要求を転送すると、メソッドinit()は呼び出されません。
  2. あなたはMainServlet
  3. のインスタンスが存在しないことができるので、私はそれが悪い習慣だからあなたは、フィールドAdminLoginServletValidateServletの名前を変更する必要がありますあなたのWebアプリが

ように見えるべきかわからないんだけど、正しいですフィールド名を大文字で始める。

+0

あなたの答えをありがとう!それは私のために非常に便利でした。よろしく – Ommadawn

関連する問題