0

//以下は、HtmlTable という私のサーブレットです。ここでショッピングカートのような機能を実装しようとしています。addingItems は、要素を ArrayList に入れる別のクラスです。ウェブサイトから何かを追加するときはいつでも、AJAX リクエストで processRequest メソッドではなくメソッド jusAdding() を呼び出すだけです。十分な項目が ArrayList に追加されたら、サーブレットを呼び出すだけで自動的に実行される aI.getItems() を呼び出して画面に表示できるようにします。出来ますか??はいの場合、AJAX リクエストで URL をどのように記述すればよいですか。

public class HtmlTable extends HttpServlet {

        addingItems aI = new addingItems();

        public void jusAdding(HttpServletRequest request, HttpServletResponse response){
            aI.addItemsInCart(request, response);
        }
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            List<itemsCart> itemsInCart = aI.getItemsInCart();

            try {

                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet HtmlTable</title>");
                out.println("</head>");
                out.println("<body>");
             //whatever content is in the itemsInCart will be displayed here in body tag   
    out.println("</body>");
                out.println("</html>");
            } finally {
                out.close();
            }
        }



    }

//よくわからない場合はご容赦ください。読者の都合に合わせて更新することをお知らせください。

4

2 に答える 2

3

コンテナによってメソッドが呼び出されることはありません。サーブレット仕様(または少なくともHttpServletjavadoc )から始める必要があります。

コンテナーはservice()サーブレットのメソッドを呼び出します。次に、HttpServletリクエスト HTTP メソッドに対応するメソッドにディスパッチdoGet()しますdoPost():service()そこの)。

「フル ページ リクエスト」と「AJAX リクエスト」を区別するには、クライアントがその呼び出しに識別子を含める必要があります。異なる値を持つリクエスト パラメータ、異なる HTTP メソッドなどです。doGet()たとえば、メソッドでそれを取得したら、そのディスクリミネーターを確認し、クライアントの要求に従って、またはいずれかを呼び出すことができますjustAdd()processRequest()

于 2012-11-22T09:28:11.657 に答える