Frage

Können Sie ein Servlet mit einem Link nennen? Zum Beispiel

<a href="/servletName">link text</a>

Und möglicherweise Parameter an das Request-Objekt übergeben, indem sie an den Abfragezeichenfolgeflag hinzuzufügen.

Wenn nicht, habe ich diese Art der Sache gesehen:

RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(/MyServlet); 
dispatcher.include(request,response); 

Aber wie würde ich dies auslösen? wenn es JavaScript-Code ist zum Beispiel könnte ich es in einer jQuery Klick-Funktion setzen, oder ob dies ein Servlet wäre, würde ich es in ein Verfahren setzen.

Aber wie ich diesen Code nenne innerhalb einer JSP. Soweit ich weiß, Sie können nicht von Java-Code mit JavaScript-Ereignisse aufrufen.

War es hilfreich?

Lösung

<a href="servletUrl?param=value">click</a>

vollkommen legal ist und funktioniert.

Das wird die doGet(..) Methode des Servlets macht aufgerufen werden, und Sie können die Parameter mit request.getParameter("param") bekommen

Andere Tipps

Sie einfach ein Missverständnis löschen:

  

Soweit ich weiß, Sie können nicht von Java-Code mit Javascript Ereignisse aufrufen.

Sie können perfekt Java-Code aufrufen mit JavaScript-Code (und Events). Bis zu dem Punkt, müssen Sie nur, damit Sie JavaScript ein fullworthy HTTP-Anforderung an den Server-Seite senden. Es gibt grundsätzlich drei Möglichkeiten hierfür.

  1. Der erste Weg ist zum Simulieren Aufruf einer bestehenden Link / Button / Form. Z.

    <a id="linkId" href="http://www.google.com/search?q=balusc">Link</a>
    
    <script type="text/javascript">
        document.getElementById('linkId').click();
    </script>
    

    und

    <form id="formId" action="http://www.google.com/search">
        <input type="text" id="inputId" name="q">
    </form>
    
    <script type="text/javascript">
        document.getElementById('inputId').value = 'balusc';
        document.getElementById('formId').submit();
    </script>
    
  2. Der zweite Weg ist window.location zu verwenden, eine einfache GET-Anfrage zu schießen. Zum Beispiel:

    <script type="text/javascript">
        var search = 'balusc';
        window.location = 'http://www.google.com/search?q=' + search;
    </script>
    
  3. Die dritte Möglichkeit ist XMLHttpRequest-Objekt zu verwenden, um eine asynchrone Anforderung zu schießen und die Ergebnisse zu verarbeiten. Diese Technik ist die Basis Idee von „Ajax“. Hier ist ein Firefox kompatibel Beispiel:

    <script type="text/javascript">
        function getUrl(search) {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    var responseJson = eval('(' + xhr.responseText + ')');
                    var url = responseJson.responseData.results[0].unescapedUrl;
                    var link = document.getElementById('linkId');
                    link.href = link.firstChild.nodeValue = url;
                    link.onclick = null;
                }
            }
            var google = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='
            xhr.open('GET', google + search, true);
            xhr.send(null);
        }
    </script>
    
    <p>My homepage is located at: <a id="linkId" href="#" onclick="getUrl('balusc')">click me!</a></p>
    

    Dies kann in einer kürzeren und crossbrowsercompatible Weise neu geschrieben werden mit jQuery .

Nur Ersatz http://www.google.com/search mit Ihrem eigenen Servlet die obigen Beispiele zur Arbeit in Ihrer Umgebung zu erhalten.

Für weitere Hintergrundinformationen finden Sie möglicherweise dieser Artikel nützlich als auch.

Vielleicht ist die folgende ist, was Sie nach:

<jsp:include page="/MyServlet">
    <jsp:param name="param" value="value"/>
</jsp:include>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top