Используя web.xml, я могу объявить несколько сервлетов на основе одного Java-класса, например:
<servlet>
<servlet-name>servlet1<servlet-name>
<servlet-class>com.xx.servClass<servlet-class>
</servlet>
<servlet>
<servlet-name>servlet2<servlet-name>
<servlet-class>com.xx.servClass<servlet-class>
</servlet>
И затем я могу обслуживать два URL-адреса, используя два сервлета, чтобы они могли выполнять некоторые задачи на основе их идентификаторов, таких как this.getServletName()
. Как я могу добиться того же, используя аннотации? Благодарю.
Я не думаю, что можно разместить 2 аннотации @WebServlet в одном классе, однако вы можете достичь своей цели, сопоставляя сервлет с двумя разными URL-адресами, такими как:
@WebServlet(name="Servlet1", urlPatterns={"/url1", "/url2"})
public class ServClass extends HttpServlet {
И затем вы можете определить, какой URL был использован, исследуя объект запроса.
Для справки см. Спецификацию сервлета 3.0.