Sie können das nicht tun, indem Sie die Anfrage weiterleiten: Sie müssen dem Browser sagen, dass er eine neue HTTP-Anfrage generieren soll, indem Sie die Methode response.sendRedirect() verwenden.
Jetzt ist die Frage, warum die URL-Leiste den Namen der Jsp anzeigen soll?
Das Verstecken des echten Zielpfads ist eine erwünschte Funktion beim Weiterleiten von Anfragen: Benutzer müssen die serverseitigen Weiterleitungen (so wird es auch genannt) in Ihrer Web-App nicht kennen. Denken Sie darüber nach: Um seine Aufgaben auszuführen, kann ein Servlet die Anfrage möglicherweise mehrere Male weiterleiten, bevor es zum endgültigen Zielort kommt: Sie möchten nicht, dass sich die URL-Leiste jedes Mal ändert.
Geben Sie Ihrem Servlet einen schickeren Namen wie "Suchen" anstatt "SearchServlet", damit die Benutzer wissen, dass sie sich auf der Suchseite Ihrer Webanwendung und nicht auf der Seite "SearchServlet" befinden.
Darüber hinaus, wenn Sie eine professionelle Website besuchen, werden Sie fast nie die Erweiterung .jsp oder .html oder .php in der Adressleiste sehen. Das ist zwar keine Anforderung oder Spezifikation, und Ihnen steht es frei, dies zu tun. Ich glaube jedoch, dass der erste Ansatz Best Practice ist (es sieht für mich sogar noch besser aus). Es gibt sogar einen Ordner WEB-INF, dessen Ziel es ist, Ihre .jsp-Seiten vor dem direkten Zugriff über die URL-Leiste zu verbergen.
Was ich gerne mache, ist ein Servlet als Landing-Welcome-Seite der Web-App, das für die Weiterleitung und Weiterleitung von Anfragen zuständig ist, basierend auf der Benutzereingabe und der inneren Arbeit der Anwendung.
Nun zurück zu Ihrer letzten Anfrage (pun intended)
„Mit anderen Worten, ich möchte nur die search.jsp Seite zu aktualisieren, um die Ergebnisse in der gleichen Seite angezeigt werden soll. Wie kann ich das tun?“
Was ich tun würde, ist:
die Benutzer auf "Suchen" Servlet vom Servlet willkommen/home umleiten.
In der DoGet-Methode des Such-Servlets würde ich die Anfrage an die search.jsp-Seite weiterleiten (Sie könnten Attribute vor der Weiterleitung einstellen, wenn Sie müssen).
In der search.jsp würde ich das Action-Attribut des Formulars auf "Suchen" (der Name des Servlets) und die Methode auf POST setzen.
In der DoPost-Methode des Such-Servlets würden Sie implementieren, welche Logik Sie implementieren möchten und schließlich die Anfrage an die Suche weiterleiten.jsp
Nach der Suchtaste schlagen (und auch nach dem Submit-Button geklickt wird), was der Benutzer in der Adressleiste sieht, ist einfach
http://localhost:8080/MyProject/Search
Hoffnung, den Sinn macht.