1

実行して Web ページからデータを取り込むサーブレットがあります。後で別の一連のタスクで、標準の Java クラスからこのデータにアクセスしてデータを使用したいのですが、どうすればよいでしょうか? アクセスできるようにどこにでもデータを保存できますか?

私はこのようなコードを持っています:

String name = request.getParameter("username");

そして、それを属性として設定して渡そうとしました:

getServletContext().setAttribute("com.mycompany.app-param", "name");

次に、次のクラスでコンテキストにアクセスして変数を取得しようとしましたが、何を試してもサーバー エラー 500、または null または Server = null が発生しました。コンテキストを適切に取得できないと思います:

value = getServletContext().getAttribute("com.mycompany.app-param");

以前に作成したコンテキストにアクセスしてその変数を取得する方法を知っている人はいますか?

4

6 に答える 6

1

getServletContext()はGAEで公式にサポートされていますか?を参照してください。--gaeでは、希望どおりに機能することは保証されていません(たとえば、情報を渡すため)。

代わりに、SessionまたはRequestスコープの属性を使用する必要があります。開始するには、ここここ を参照してください。どちらを使用するかは、必要な寿命と保存された属性の可視性によって異なります(リクエスト<セッション<アプリケーション)

于 2012-07-19T14:35:43.843 に答える
1

どうぞ...

public class DummyDTO {
    private String name = null;
    private String age = null;

    // getters and setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
} 

public class MyServletClass extends HttpServlet {
    public void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException {
        DummyDTO dummyDTO = new DummyDTO();
        dummyDTO.setName(request.getParameter("name"));
        dummyDTO.setAge(request.getParameter("age"));
        AnotherClass.setValues(dummyDTO);
    }




    public class AnotherClass {

        String name = "";
        String age = "";

        public static void setValues(DummyDTO dummyDTO) {

            name = dummyDTO.getName();
            age = dummyDTO.getAge();
        }

    }   
于 2012-07-19T13:14:22.700 に答える
1

getter(Javaクラスへのデータの取得)とsetter(Webページからのデータの設定)のセットでDTOを利用し、後でJavaクラスを使用してアクセスできるようにグローバルスコープを維持できます...これを願っています役立ちます!!!

于 2012-07-19T12:59:22.623 に答える
1

データベースにデータを永続化する 1 つの dao を使用して、データ アクセス レイヤーを作成できます。要件がセッション スコープでのみデータを使用することである場合は、そのデータをセッションに保存できます。

于 2012-07-19T13:00:43.223 に答える
1

そのデータをいくつかのファイルに保存できます

または

UI ですべてのプロパティを持つ Class を提供し、そのクラスのオブジェクトを作成し、その後そのデータが必要なときにいつでもそのオブジェクトをシリアル化して、そのオブジェクトを逆シリアル化できます。

シリアル化リンク http://www.tutorialspoint.com/java/java_serialization.htm

于 2012-07-19T13:00:49.060 に答える
1

はい、データベース テーブルのように? それともファイルですか?

サンプルコード:

https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/servlet_jdbc_sample1?lang=en

于 2012-07-19T12:53:54.627 に答える