@Path
Şu satırı dahil ederiz.
Metodun başına yazarız. Şöyle yaparız.
@Path anotasyonu @QueryParam ile sıkça kullanılır.
@Path anotasyonu @PathParam ile sıkça kullanılır.
ServletContext ile beraber kullanılması
Bu bence iyi bir yöntem değil ancak illa kullanmak istersek şöyle yaparız. Şu adrese gidince "http://localhost:8080/myapp/api/test" ServletContext'e erişebiliriz.
Şu satırı dahil ederiz.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
Sınıf N kere yaratılabilir. Açıklaması şöyle
Sınıfın başına yazarız. Şöyle yaparız.
Daha geniş bir açıklama şöyle.By default a new resource class instance is created for each request to that resource.
Örnek3.1.1 Lifecycle and EnvironmentBy default a new resource class instance is created for each request to that resource. First the constructor is called, then any requested dependencies are injected (context is one of those dependencies), then the appropriate method is invoked and finally the object is made available for garbage collection.An implementation MAY offer other resource class lifecycles, mechanisms for specifying these are outside the scope of this specification. E.g. an implementation based on an inversion-of-control framework may support all of the lifecycle options provided by that framework.
Sınıfın başına yazarız. Şöyle yaparız.
@Path("/parties")
public class AllPartiesResource {
...
}
ÖrnekMetodun başına yazarız. Şöyle yaparız.
@Path("/parties")
public class AllPartiesResource {
@Path("{party}") //points to OnePartyResource.class
public OnePartyResource getParty(@PathParam("party")String party)
{...}
}
Diğer@Path anotasyonu @QueryParam ile sıkça kullanılır.
@Path anotasyonu @PathParam ile sıkça kullanılır.
ServletContext ile beraber kullanılması
Bu bence iyi bir yöntem değil ancak illa kullanmak istersek şöyle yaparız. Şu adrese gidince "http://localhost:8080/myapp/api/test" ServletContext'e erişebiliriz.
@Path("test")
public class MyResource implements ServletContextListener
{
...
}
Sınıfın içinde şöyle yaparız.// All classes in the web app share a ServletContext, so attribute names
// need to start with package names to prevent collisions.
private static final String KEY = "MyKey";
@Override
public void contextInitialized(ServletContextEvent ctxt) {
String str = "MyValue";
ctxt.getServletContext().setAttribute(KEY, str);
}
@GET
public void test(@Context ServletContext context) {
System.out.println(context.getAttribute(KEY));
}
Hiç yorum yok:
Yorum Gönder