JavaScriptを使用せずにハイパーリンクをクリックしてJavaサーブレットを呼び出す方法はありますか?
ハイパーリンクに、サーブレットマッピングが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>
などのハイパーリンクがサーブレットを呼び出します。web.xml
_で宣言するには、名前、クラス、およびrl-patternを設定します(URLパターンが_/myServlet
_であるとします)<a href="/myServlet">mylink</a>
_doGet(..)
メソッドをオーバーライドして、必要な処理を実行しますサーブレット「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>
「calla Javaサーブレット?リンクをクリックするための最も通常の(つまり、JavaScriptマジックなしの)ブラウザの動作は、HTTPリクエストを送信してドキュメントをフェッチすることです。リンクで指定されたURLとそれを表示します-そしてサーブレットはHTTPリクエストに応答するために存在します。
したがって、特別なことをする必要はまったくありません。通常のHTMLリンクを用意し、「呼び出す」サーブレットがそのリンクのURLに対応していることを確認してください。もちろん、次の質問は、そのサーブレットが何を返すか、そしてブラウザにそれを使って何をさせたいかということです。