31 Temmuz 2018 Salı

Jakarta EE WEB-INF Dizini - Jakarta XML'lerini İçeri

Giriş
Açıklaması şöyle. Jakarta XML'leri bu dizine konulur. Bazı projelerde JSP dosyaları da bu dizine konuluyor. Bu standart kullanım mı emin değilim
A special directory exists within the application hierarchy named WEB-INF. This directory contains all things related to the application that aren’t in the document root of the application. The WEB-INF node is not part of the public document tree of the application. No file contained in the WEB-INF directory may be served directly to a client by the container. However, the contents of the WEB-INF directory are visible to servlet code using the getResource and getResourceAsStream method calls on the ServletContext, and may be exposed using the RequestDispatcher calls.
Yapısı şöyle
ApplicationName
|
|--META-INF
|--WEB-INF
      |_web.xml       <-- configuration file of your web app
      |_classes       <--all the classes of your webapp, 
      |_lib           <--all the libraries (jars) your application need
Spring MVC ile yapısı şöyle. src/main/webapp/WEB_INF şeklinde
├── src
   └── main
       ├── java
          └── com
              └── hellokoding
                  └── hello
                      └── web
                          └── YourClass.java
       ├── resources
          ├── application.properties
          └── logback.xml
       └── webapp
           ├── resources
              ├── css
                 └── bootstrap.min.css
              ├── images
              └── js
                  └── bootstrap.min.js
           └── WEB-INF
               ├── views
                  └── hello.jsp
|               ├── appconfig-mvc.xml
               ├── appconfig-root.xml 
               └── web.xml 
└── pom.xml
Dosyalardan birisi web.xml

META-INF dizini
İçi şöyledir.
Apps
  --META-INF
     -maven
     -MANIFEST.MF
     -war-tracker
  --WEB-INF
      -classes
           -com
           -static
           -application.properties
      - lib-provided
      -lib
      - web.xml + audit-servlet.xml
  --org
  -- My JSP pages ..
classes dizini
Açıklaması şöyle
The WEB-INF/classes and WEB-INF/lib folders are examples of folders required by the Servlet specification at runtime.
Örnek
ClassLoader ile classes dizininden okumak için şöyle yaparız.
this.getClass().getClassLoader().getResourceAsStream("xyz");
Örnek
Elimizde şöyle bir yapı olsun. file.text classes dizini altında.
WEB-INF
    + classes
        + package
            + App.class
        + file.txt
Okumak için şöyle yaparız.
InputStream in = package.App.class.getClassloader().getResourceAsStream("file.txt");
Örnek
Bu sefer dll'leri classes dizinine ekliyoruz. Şöyle yaparız.
WEB-INF\classes\mylibrary.dll
Bu dll'i tomcat'e yükletip JNI ile kullanmak için şöyle yaparız.
${catalina.home}\webapps\ROOT\WEB-INF\classes\mylibrary.dll
lib dizini
lib dizininden okuma yapmak mümkün değil. Açıklaması şöyle
WEB-INF/lib is not in the classpath. It is supposed to contain jar files, that are in the classpath.


Hiç yorum yok:

Yorum Gönder