2017-11-09 2 views
2

私はサーブレット、JSPなどでWebアプリケーションをプログラミングするのが比較的新しいです。どのサーブレットがJSPからの「サブミット」クエリを処理するかを知るには?

私の場合は、2つのサーブレットと5つのJSPが必要です。一つのサーブレットは良いものであり、接続を初期化しています。他のサーブレットよりもデータベースアクセスに関するより多くの権限を持つJSPAdminページに対応するServletAdminです。

ServletAdminはJSPAdminページからのリクエストのみを処理しますが、実際の動作はわかりません。サーブレットに@WebServletアノテーションをパラメータとして設定する必要がありますか?私はすでにそのような最初のいずれかのことをやった:

@WebServlet(
     name = "ServletConnection", 
     displayName = "Connection handling Servlet",  
     urlPatterns = {"/JSPConnection", "/JSPInit","/JSPCaddie","/JSPPay"} 
) 

を私は本当に私がここでやっているものを得ることはありません、私はので、私はのにを試してみました前に、私の質問を検索し、その解決策accrossに来ましたそれから何かを作るが、私はむしろ確かに頼む。

すべてのJSPとサーブレットのすべてはurlPatternsに引用されたよう

私のJSPがそれぞれ名前が付けられ、それぞれのフォルダのルートにし、上記の私の段落に現在あるので、私のサーブレットです。

+0

あなたはおそらくのために '' @WebServlet( "/管理/ *")のように、異なる開始URLを使用することができます管理用のものと '@WebServlet("/user/* ")'のようなものが残り、すべてのリクエストURLはadminかuserのどちらかで始まります。 (私は正直であるために注釈を使用したことはありません) –

答えて

1

フォーム内のアクションフィールドに与えられたどのクラスであれ、そのサーブレットは送信要求を処理します。アクションとurlパターンの値は一致する必要があります。これは、どのサーブレットがリクエストを処理するのかをリクエストする方法です。

フォームを使用していない場合、hrefの値はurlパターンと一致する必要があります。

<form method="POST" action='UserController' name="frmAddUser"> 
     User ID : <input type="text" readonly="readonly" name="userid" 
      value="<c:out value="${user.userid}" />" /> <br /> 
     <input type="submit" value="Submit" /> 
    </form> 

    <a href="UserController">Click Here </a> 

注釈:

@WebServlet(name = "Servlet", description = "This is a servlet with annotations", urlPatterns = "/UserController") 
+0

ああ、私はそれを得ると思うので、私は

いくつかのHTMLコード
に入れたサーブレットの名前は1になりますそのJSPのリクエストを処理する – Nenoxx

0

最良の方法はあまり複雑にし、多様なロジックの多くのサーブレットを紛らすしないことではありません。複数のjspに適合するサーブレットロジックを持っているなら、大丈夫です。これを使って。そのサーブレットにURL値を割り当て、好きなページでそれを使用します。

@WebServlet(name = "MyServlet", urlPatterns={"/whatever"}) 

そして、あなたのJSPフォーム内:

<form action="whatever" method="POST"> 

幸運:)

関連する問題