web-dev-qa-db-ja.com

ハイパーリンクをクリックしてサーブレットを呼び出す

JavaScriptを使用せずにハイパーリンクをクリックしてJavaサーブレットを呼び出す方法はありますか?

9
sarah

ハイパーリンクに、サーブレットマッピングがweb.xmlファイルで定義されているURLを含めるようにします。

servlet-mapping要素は、サーブレットとURLパターン間のマッピングを定義します。以下の例では、myservletという名前のサーブレットを/fooで始まる任意のURLにマップします。

<servlet>
  <servlet-name>myservlet</servlet-name>
  <servlet-class>com.stackoverflow.examples.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>myservlet</servlet-name>
  <url-pattern>/foo/*</url-pattern>
</servlet-mapping>
  • この例では、<a href="/foo/test.html">Click Me</a>などのハイパーリンクがサーブレットを呼び出します。
24
John Topley
  1. サーブレットを_web.xml_で宣言するには、名前、クラス、およびrl-patternを設定します(URLパターンが_/myServlet_であるとします)
  2. 書き込み_<a href="/myServlet">mylink</a>_
  3. サーブレットのdoGet(..)メソッドをオーバーライドして、必要な処理を実行します
6
Bozho

サーブレット「callme」を定義し、このサーブレット用にweb.xmlが構成されていると考えてください。次の構文を使用して、ハイパーリンクを使用して呼び出します

web.xml

<servlet>
<description>callme Functions</description>
<display-name>callme</display-name>
<servlet-name>callme</servlet-name> <servlet-class>com.test.Projects.callme</servlet- 
class>
</servlet>

<servlet-mapping>
<servlet-name>callme</servlet-name>
<url-pattern>/callme</url-pattern>
</servlet-mapping>

jSPの場合:

<a href="<%=request.getContextPath()%>/callme">Call the servlet</a>
3
Warrior

「calla Javaサーブレット?リンクをクリックするための最も通常の(つまり、JavaScriptマジックなしの)ブラウザの動作は、HTTPリクエストを送信してドキュメントをフェッチすることです。リンクで指定されたURLとそれを表示します-そしてサーブレットはHTTPリクエストに応答するために存在します。

したがって、特別なことをする必要はまったくありません。通常のHTMLリンクを用意し、「呼び出す」サーブレットがそのリンクのURLに対応していることを確認してください。もちろん、次の質問は、そのサーブレットが何を返すか、そしてブラウザにそれを使って何をさせたいかということです。

1