0

私のサーブレットはこのようなものです

@WebServlet(name = "login", urlPatterns = {"/login"})
public class login extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        password = Base64.encode(password.getBytes());
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.getLoggedIN();
}

このサーブレットによれば、「ログイン」を使用してGETまたはPOSTデータをこのサーブレットに送信できます。問題はありません。このサーブレットを使用して別のリクエストを送信する方法はありますか。例

  1. 'login' (post リクエストが実行されます) -> doPost() メソッド (doPost は知っています)
  2. 'signout' (post リクエストが実行されます) -> 別のメソッドが定義され、doPost メソッドとして機能します

これが可能かどうかわかりません!

4

4 に答える 4

3
  • SignOutとボタンの名前があると思いますLogin。そのため、それらのいずれかをクリックすると、ボタン名を呼び出して実際にクリックされたServletものを確認し 、リクエストを適切なメソッドに転送できます..buttonrequest.getParameter()

したがって、あなたのservletでは、この種のコードを使用できます: -

if (request.getParameter("LoginButton") != null) {
     // Forward to login method

} else if(request.getParameter("SignOutButton") != null) {
     //Forward to signout method..
}
  • もう1つの方法は、の名前を...として送信することButtonです.そして、次を使用してそのクエリ文字列からQuery String名前を取得できますservletrequest.getParameter()

したがって、クエリ文字列は次のようになります。

http://localhost:8080/yourServlet?action=Login
http://localhost:8080/yourServlet?action=SignOut
于 2012-09-30T13:42:08.400 に答える
1

同様の状況で私が行ったことは次のとおりです。

  1. 実行したい操作の種類を説明する非表示フィールドを使用します(たとえば、ログイン、ログアウト、データの入力、データの更新など)。
  2. リクエストオブジェクトからhidddenパラメータの値を取得します。
  3. 可能な操作ごとにifelseラダーを使用してから、ifelseブロックで適切なメソッドを呼び出します。

これは非常に基本的なことですが、お役に立てば幸いです。

于 2012-09-30T13:33:10.420 に答える
0

別のパターンを追加します。各タイプのリクエストに固有のリクエストパラメータを確認するか、「request.getRequestURI」メソッドを使用してログインリクエストか道標リクエストかを確認することもできます

于 2012-09-30T13:33:57.983 に答える
-1

特定されたリソースに処理されるデータを送信するために使用している一般的なシナリオの投稿 (たとえば、HTML フォームから) に従って参照してください。データはリクエストの本文に含まれます。これにより、新しいリソースが作成されるか、既存のリソースが更新されるか、またはその両方が発生する可能性があります。

そのため、UI でデータを挿入し、その特定のデータをデータベースでも確認できます。ここにあなたのコードで

 @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String username = request.getParameter("username");
    String password = request.getParameter("password");
    password = Base64.encode(password.getBytes());
    User user = new User();
    user.setUsername(username);
    user.setPassword(password);
    user.getLoggedIN();

設定しているデータのみを取得します。またはあなたが使用することができます

if(user!=null){

//ここで、リクエストをどこかに転送できます。}

于 2015-12-03T04:36:02.857 に答える