CodeGym /Kursus /All lectures for JV purposes /Kustomisasi Aplikasi Web nganggo Anotasi

Kustomisasi Aplikasi Web nganggo Anotasi

All lectures for JV purposes
tingkat, wulangan
kasedhiya

8.1 Pambuka kanggo anotasi servlet

Miwiti karo versi 7, Tomcat wiwit ndhukung spesifikasi servlet web Servlet API 3.0 . Ing tartamtu, paket katon ing disebut javax.servlet.annotation. Isine macem-macem jinis anotasi sing bisa digunakake kanggo menehi anotasi kelas servlet. Yen sampeyan nggunakake anotasi, deskriptor penyebaran (web.xml) ora dibutuhake.

Dhaptar anotasi sing paling migunani:

anotasi Katrangan
1 @WebServlet Ngandika servlet
2 @WebInitParam Nemtokake parameter initialization
3 @WebFilter Nyatakake saringan web
4 @WebListener Nyatakake lisener web
5 @ServletSecurity Ngidini sampeyan ngatur setelan keamanan

Tuladha:

@WebServlet( urlPatterns = {"/api/*"} )
public class Example extends HttpServlet {
    protected void doGet( HttpServletRequest request, HttpServletResponse response) throws Exception {
         response.setContentType("text/html");
         PrintWriter out = response.getWriter();
         out.println("Hello World!");
    }
}

Siji anotasi cukup kanggo ngumumake servlet lan peta kanggo nglayani kabeh panjalukan sing bakal teka menyang URL sing diwenehake dening /api/*.

8.2 Nggawe pemetaan servlet

Anotasi duwe @WebServletakeh paramèter sing ngidini konfigurasi fleksibel banget saka servlet sing diterangake. Ayo goleki sing utama:

Atribut Katrangan
1 name Jeneng unik Servlet (kaya ing web.xml)
2 displayName Jeneng servlet sing bisa diwaca manungsa
3 description Deskripsi Servlet
4 value Nyetel url kanggo pemetaan
5 urlPatterns Nemtokake dhaptar url sing arep dipetakan (digunakake tinimbang nilai)
6 initParams Ngidini sampeyan nyetel paramèter wiwitan servlet
7 asyncSupported Nemtokake manawa servlet bisa mlaku kanthi ora sinkron (HTTP/2)
8 loadOnStartup Nomer urutan kanggo ngontrol prioritas wiwitan servlet
9 smallIcon Nyetel lambang servlet cilik
10 largeIcon Nyetel lambang servlet gedhe

Ana sawetara titik menarik ing kene.

Pisanan, elinga valuelan urlPatternsminangka atribut sing bisa diijolake. Loro-lorone ngidini sampeyan nemtokake dhaptar URL sing kudu dipetakan dening servlet.

Kapindho, parameter kasebut asyncSupportednuduhake manawa servlet bakal ngolah panjaluk asinkron kanthi bener liwat protokol HTTP/2.

Lan atribut penting katelu yaiku initParams, ngidini sampeyan nyetel dhaptar paramèter sing bakal diselehake ing ServletContext.

Tuladha:

@WebServlet(
        urlPatterns = {"/sendFile", "/uploadFile"},
        loadOnStartup = 1,
        asyncSupported = true,
        initParams = {
            @WebInitParam(name = "saveDir", value = "c:/uploaded"),
            @WebInitParam(name = "allowedTypes", value = "jpg,gif,png")
        }
)
public class ImageUploadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String saveDir = getInitParameter("saveDir");
        String fileTypes = getInitParameter("allowedTypes");

        PrintWriter writer = response.getWriter();

        writer.println("saveDir = " + saveDir);
        writer.println("fileTypes = " + fileTypes);
    }
}

8.3 Nggawe pemetaan filter

Kaya kasebut ing ndhuwur, saringan minangka jinis utilitas servlet, lan dikonfigurasi kaya servlet. Mangkene atribut sing ana ing anotasi @WebFilter:

Atribut Katrangan
1 filterName Filter jeneng unik (kaya ing web.xml)
2 displayName Jeneng Filter sing bisa diwaca manungsa
3 description Katrangan Filter
4 value / urlPatterns Nyetel dhaptar url kanggo peta
5 dispatcherTypes Nemtokake dhaptar DispatcherTypes
6 servletNames Nemtokake dhaptar servlet sing bakal ditrapake
7 initParams Ngidini sampeyan nyetel paramèter wiwitan panyaring
8 asyncSupported Nemtokake yen panyaring bisa mlaku kanthi ora sinkron (HTTP/2)
9 smallIcon Nyetel lambang filter cilik
10 largeIcon Nyetel lambang filter gedhe

Conto panyaring sing nyegat kabeh panjalukan menyang servlet tartamtu :

@WebFilter(servletNames = {"MyOwnServlet", "UploadServlet"})
public class MyFilter implements Filter {
    // implements Filter's methods here...
}

Conto filter sing diwenehi pirang-pirang paramèter :

@WebFilter(
        urlPatterns = "/uploadFilter",
        initParams = @WebInitParam(name = "fileTypes", value = "doc;xls;zip;txt;jpg;png;gif")
)
public class UploadFilter implements Filter {
    // implements Filter's methods here...
}

Conto jinis filter sing diwenehake kanggo RequestDispatcher :

@WebFilter(
        urlPatterns = "/admin",
        dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD}
)
public class MyFilter implements Filter {
    // implements Filter's methods here...
}

Sampeyan bakal sinau luwih lengkap babagan tujuan saringan lan servlet ing kuliah ing ngisor iki.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION