Kann ich Servlet aufrufen, ohne es in web.xml zuzuordnen? [Duplikat]
Wenn ich eine Aktion für ein Servlet habe , sollten wir die empfohlene Zuordnung in XML verwenden. So würde es aussehen:
HTML-Index:
<!DOCTYPE html>
</head><body>
<form action="go" method="POST">
Enter name: <input type="text" name="name">
<button>Submit form :)</button>
</form>
</body></html>
XML-Zuordnung:
<web-app..........
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>ServletOne</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/go</url-pattern>
</servlet-mapping>
</web-app>
Servlet-Klasse
public class ServletOne extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String s = req.getParameter("name");
PrintWriter pw = resp.getWriter();
pw.println("Welcome " + s);
}
}
Und es funktioniert gut. Meine Frage ist jedoch, was passiert, wenn ich kein Mapping erstellen möchte - ich möchte die Servlet-Klasse direkt aufrufen. Ich habe meine XML-Datei entfernt und alle diese Zeilen ausgeführt:
<form action="ServletOne" method="POST">
<form action="ServletOne.class" method="POST">
<form action="ServletOne.java" method="POST">
Und ... keiner von ihnen funktioniert. Kann ich Servlet tatsächlich direkt ohne Zuordnung aufrufen? Wenn ja, wie? Manchmal muss ich zu Testzwecken keine Zeit damit verschwenden, jedes Servlet zuzuordnen.
Antworten
Sie können Anmerkungen verwenden, z
@WebServlet("/go")
public class ServletOne extends HttpServlet {
//...
}
Ab Servlet 3.0 ziehen die meisten Entwickler dies der XML-Konfiguration vor.
Beachten Sie, dass für die Servlet-Spezifikation die Zuordnung mit a beginnen muss /
. Überprüfen Sie dies , um mehr darüber zu erfahren.