web-dev-qa-db-ja.com

<a href>を使用してjspからサーブレットに値を渡す

私はjspページを持っています-

<html>
<head>
</head>
<body>
         <%
               String valueToPass = "Hello" ; 
         %>
    <a href="goToServlet...">Go to servlet</a>
</body>
</html>

そしてサーブレット-

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

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

        }

        public void foo() {

        }
}

<a href="goToServlet...">Go to servlet</a>に値(valueToPassなどの値、または引数に値を追加する)を渡すために、servlet123に何を書き込む必要がありますか?

Jspのリンクを使用して、servlet123の特定のメソッド(foo()など)を呼び出すことはできますか?

編集:

URLでサーブレットを呼び出すにはどうすればよいですか?私のページ階層は次のようなものです-

WebContent
 |-- JSPtest
 |    |-- callServletFromLink.jsp
 |-- WEB-INF
 :    :

そして、フォルダsrc-> controlのservlet123を呼び出したいと思います。

<a href="servlet123">Go to servlet</a>を試しましたが、リンクを押してもサーブレットが見つかりません。

2番目の編集:

私は<a href="http://localhost:8080/MyProjectName/servlet123">Go to servlet</a>を試してみましたが、うまくいきました。

8
URL87

URLを使用してサーブレットにパラメータを送信する場合は、この方法で行う必要があります

<a href="goToServlet?param1=value1&param2=value2">Go to servlet</a>

そして、リクエストで利用できる値を取得します。

2番目の質問について。私はノーと言います。次のようなulrにパラメータを追加できます

<a href="goToServlet?method=methodName&param1=value1">Go to servlet</a>

そして、その情報を使用して特定のメソッドを呼び出します。

ちなみに、Strutsのようなフレームワークを使用すると、StrutsではURLを特定のアクションメソッド(「サーブレット」としましょう)にバインドできるため、簡単になります。

編集済み

このようにしてサーブレットを定義しました。

@WebServlet("/servlet123")

あなた、あなたのサーブレットは/ servlet123で利用可能になります。 doc を参照してください。

私はあなたのコードをテストしました、そしてそれは働いています:

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

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.write("<h2>Hello Friends! Welcome to the world of servlet annotation </h2>");
        out.write("<br/>");
        out.close();
    }
}

次に、http://localhost:8080/myApp/servlet123でサーブレットを呼び出しました(使用している場合は、myAppをアプリケーションコンテキストにします)。

6
jddsantaella

<a href="url">urltitle</a>を使用すると、URLを定義できます。ここからサーブレットを呼び出すのは、ブラウザから呼び出すのと同じです。ブラウザでサーブレットを呼び出す場合と同じようにURLを指定するだけで、サーブレットを呼び出すことができます http://mysite.com?param1=val1&param2=val2 =など.

1
Kamal