that's pretty much correct.
you use value if you only want to specify a single URL
pattern and no other attributes.
this is incorrect (can't use value with another attribute)
@WebServlet("/myServlet", asyncSupported=false)
value only
@WebServlet("/myServlet")
you have to do this if you want to use multiple attributes
@WebServlet(urlPatterns={"/myServlet"}, asyncSupported=true)
notice that i had to use URL patterns for a single value because i wanted multiple attributes.
hope this helps.