-2

Netbeans IDEを使用し、フレームワークを使用しないエンタープライズソフトウェアプロジェクトでの作業に制限されています。

フロントエンドディスプレイはregister.jspです。私のモデルパッケージにはCustomer.java、いくつかのゲッターとセッターを含むクラスが含まれています。データパッケージには「CustomerData.java」が含まれており、顧客に関連するDB関数(登録、ログインなど) CustomerDataが拡張されていHttpServletます。

CustomerData登録フォームのクラスから特定のメソッドを参照する必要があります。これは可能ですか?

これが可能な場合、およびのweb.xmlファイルエントリはどうなりますか?servletservletmapping

これがコードです。

Register.jsp

<form name="loginForm" method="post" action="CustomerData/RegisterCustomer">
......
</form>

CustomerData.javaスケルトン:

public class CustomerData extends HttpServlet {

    public void registerCustomer(HttpServletRequest request)
        throws ServletException, IOException
    {
        // this is the method I need to reference. It creates a db connection, checks to see if
        // the Customer is already in the DB, and if not, registers the user.
    }

    public void loginCustomer(HTTPServlet request)
        throws ServletException, IOException
    {
        // Some other Customer data method that will need to be called from my login.jsp page
    }

    public void SomeOtherMethod()
    {
       // some helper methods or validation methods for Customer
    }
}
4

2 に答える 2

0

あなたがしたいことは、getPathInfoを使用して行うことができます

サーブレットのマッピングが

<servlet-mapping>
    <servlet-name>CustomerData</servlet-name>
    <url-pattern>/CustomerData/*</url-pattern>
</servlet-mapping>

通話中

String pathInfo = request.getPathInfo();

'/RegisterCustomer'pathInfoに値が表示されます。そこから、どのメソッドを呼び出す必要があるかを理解するのはかなり簡単です。サーブレットでスローされる可能性のあるあらゆる種類の悪用に対処するために、コードの広告チェックを忘れないでください (たとえば、「メソッド名」が指定されていない、存在しないメソッド名が指定されているなど)。

于 2012-11-28T17:42:01.987 に答える
0

以下のことをお勧めします。

JSPページoprでは、操作の値を設定できる場所など、1つのパラメーターを定義できます。

<form name="loginForm" method="post" action="CustomerData/">
<input type=hidden name=opr id=opr value=1
......
</form>

サーブレットでは、以下のように渡された操作値によって操作を処理できます

public doPost(HttpServletRequest req, HttpServletResponse res){
        int operation = Integer.valueOf(req.getParameter("opr"));

        if (operation == 1){
            registerCustomer(req);
        }else if (operation == 2){
            loginCustomer(req);
        }else if (operation == 3){
            SomeOtherMethod();
        }...
    }

これがあなたを助けることを願っています。

于 2012-11-28T17:38:17.663 に答える