Servlet mit einem Link aufrufen?

eddy

Aktives Mitglied
Hallo Community,

ich stehe sowas von auf dem schlauch... nach 4Wochen mal wieder arbeiten 😳

Bis jetzt habe ich immer nur Formulare <form action="testkauf" method="post"> verwendet um dann mein Servlet aufzurufen.
Nun möchte ich das ganze auch mit einem Link <a href="xxx"> machen, geht das? Kann ich mittels eines
Links auch mein Servlet ansprechen zwischen den Seitenaufrufen?

Wenn ja wie? :rtfm:
 
@maki

okay, wenn es geht, warum kommt er dann bei mir im GET nicht an?
Muss ich was beachten?

Java:
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { xxx }

da sollte er doch durchlaufen... oder ?
Wie sage ich dem link denn welches Servlet er aufrufen soll? :bahnhof:
 
das ich was falsch mache war mir klar :lol:

der Link ist richtig, ich komme auf der JSP seite an wo ich hin will, nur das er vorher nicht den Java Code durchläuft... Muss ich noch Code in der JSP ändern?
 
Du musst natürlich die URL aufrufen, die Du im ServletMapping für das Servlet in der web.xml definiert hast und nicht die URL der JSP.

Im übrigen gehören JSPs in ein Unterverzeichnis von WEB-INF, damit sie nicht direkt von aussen aufrufbar sind.
 
alles klar... das ick das nich selber gemerkt habe....

Allerdings liegen meine JSP nicht unter WEB-INF sondern auf gleicher ebene in einem anderen Verzeichnis!
Stellt das jetzt ein Problem da?

Sonst erstmal vielen Dank an euch zwei! :toll:
 
Das ist natürlich kein Problem.
Bsp:
Code:
web-app
- WEB-INF/web.xml
- jsp/entry.jsp
In der web.xml steht irgendetwas wie
[XML]
...
<servlet-mapping>
<servlet-name>startServlet</servlet-name>
<url-pattern>/start.blubb</url-pattern>
</servlet-mapping>
...
[/XML]
Dann ist dein Link einfach
HTML:
<a href="/start.blubb">Klick</a>
Dein Servlet sagt dann ja: "nehm die jsp/entry.jsp Datei zum Anzeigen".

Der Hinweis von byte geht auf den Sicherheitsaspekt zurück, dass alles was im WEB-INF Ordner liegt nicht mit einem Request vom Browser erreicht werden kann. Somit kannst du ungewollte / unberechtigte Zugriffe auf deine jsps verhindern.
 
doch, aber ein <a href> link kennt nunmal nichts von einem Context. Aus diesem Grunde benutzt man meiner Meinung nach am besten die Core TagLib und da <c:url> in dem Beispiel:

HTML:
<a href="<c:url value="/start.blubb" />">Start</a>

Edit: Jetzt verstehe ich 😉 Klar, wenn sein Context der Root-Context ist, geht natürlich auch direkt /start.blubb ABER idr. ist bei Neulingen ihre WebApp NICHT der Root-Context.
 
nun hat's bei mir *Klick* gemacht:
Ihr meint den Link... nicht das Mapping. Klar der Link war "unrealistisch" bzw. war auch nicht so gewollt. Aus Gründen der Diskussion werde ich ihn aber mal so stehen lassen 😀
 
Zuletzt bearbeitet:

Zurück
Oben