Struts 2 - Yapılandırma Dosyaları
Bu bölüm, sizi bir güvenlik için gerekli olan temel yapılandırmaya götürecektir. Struts 2uygulama. Burada, birkaç önemli yapılandırma dosyası yardımıyla nelerin yapılandırılabileceğini göreceğiz.web.xml, struts.xml, strutsconfig.xml ve struts.properties
Dürüst olmak gerekirse, yalnızca kullanarak çalışmaya başlayabilirsiniz web.xml ve struts.xmlyapılandırma dosyaları (örneğimizin bu iki dosyayı kullanarak çalıştığı önceki bölümümüzde daha önce gördüğünüz gibi). Bununla birlikte, bilginiz için diğer dosyalar hakkında da açıklayacağız.
Web.xml Dosyası
Web.xml yapılandırma dosyası, HTTP isteği öğelerinin sunucu uygulaması konteyneri tarafından nasıl işleneceğini belirleyen bir J2EE yapılandırma dosyasıdır. Kesinlikle bir Struts2 yapılandırma dosyası değildir, ancak Struts2'nin çalışması için yapılandırılması gereken bir dosyadır.
Daha önce tartışıldığı gibi, bu dosya herhangi bir web uygulaması için bir giriş noktası sağlar. Struts2 uygulamasının giriş noktası, dağıtım tanımlayıcısında (web.xml) tanımlanan bir filtre olacaktır. Bu nedenle web.xml'de FilterDispatcher sınıfı için bir giriş tanımlayacağız . Web.xml dosyasının klasör altında oluşturulması gerekir.WebContent/WEB-INF.
Bu, onu oluşturan bir şablon veya araç (Eclipse veya Maven2 gibi) yardımı olmadan başlıyorsanız, yapılandırmanız gereken ilk yapılandırma dosyasıdır.
Son örneğimizde kullandığımız web.xml dosyasının içeriği aşağıdadır.
<?xml version = "1.0" Encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Struts 2 filtresini şu şekilde eşleştirdiğimize dikkat edin: /*ve değil /*.actionbu, tüm url'lerin dikmeler filtresi tarafından ayrıştırılacağı anlamına gelir. Ek Açıklamalar bölümüne geçerken bunu ele alacağız.
Struts.xml Dosyası
struts.xmldosyası, eylemler geliştirilirken değiştireceğiniz yapılandırma bilgilerini içerir. Bu dosya, bir uygulama için varsayılan ayarları geçersiz kılmak için kullanılabilir, örneğin struts.devMode = false ve özellik dosyasında tanımlanan diğer ayarlar. Bu dosya klasörün altında oluşturulabilirWEB-INF/classes.
Önceki bölümde açıklanan Merhaba Dünya örneğinde oluşturduğumuz struts.xml dosyasına bir göz atalım.
<?xml version = "1.0" Encoding = "UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name = "struts.devMode" value = "true" />
<package name = "helloworld" extends = "struts-default">
<action name = "hello"
class = "com.tutorialspoint.struts2.HelloWorldAction"
method = "execute">
<result name = "success">/HelloWorld.jsp</result>
</action>
<-- more actions can be listed here -->
</package>
<-- more packages can be listed here -->
</struts>
Dikkat edilmesi gereken ilk şey, DOCTYPE. Tüm struts yapılandırma dosyasının küçük örneğimizde gösterildiği gibi doğru belge türüne sahip olması gerekir. <struts>, altında <package> etiketleri kullanarak farklı paketleri açıkladığımız kök etiket öğesidir. Burada <package>, yapılandırmanın ayrılmasına ve modülerleştirilmesine izin verir. Bu, büyük bir projeniz olduğunda ve proje farklı modüllere bölündüğünde çok kullanışlıdır.
Örneğin, projenizin üç etki alanı varsa - business_application, customer_application ve staff_application, o zaman üç paket oluşturabilir ve ilişkili eylemleri uygun pakette depolayabilirsiniz.
Paket etiketi aşağıdaki özniteliklere sahiptir -
Sr.No | Öznitelik ve Açıklama |
---|---|
1 | name (required) Paket için benzersiz tanımlayıcı |
2 | extends Bu paket hangi paketten geliyor? Varsayılan olarak, temel paket olarak struts-default kullanırız. |
3 | abstract Doğru olarak işaretlenmişse, paket son kullanıcı tüketimi için mevcut değildir. |
4 | namespace Eylemler için benzersiz ad alanı |
constant ad ve değer nitelikleri ile birlikte etiket, aşağıdaki özelliklerden herhangi birini geçersiz kılmak için kullanılmalıdır: default.properties, az önce belirlediğimiz gibi struts.devModeEmlak. Ayarstruts.devMode özelliği, günlük dosyasında daha fazla hata ayıklama iletisi görmemizi sağlar.
Biz tanımlıyoruz action etiketler, erişmek istediğimiz her URL'ye karşılık gelir ve ilgili URL'ye her eriştiğimizde erişilecek olan execute () yöntemiyle bir sınıf tanımlarız.
Sonuçlar, bir eylem gerçekleştirildikten sonra tarayıcıya neyin döndürüleceğini belirler. Eylemden döndürülen dize, bir sonucun adı olmalıdır. Sonuçlar, yukarıdaki gibi eylem başına veya bir paketteki her eylem için mevcut olan "genel" bir sonuç olarak yapılandırılır. Sonuçlar isteğe bağlıdırname ve typeÖznitellikler. Varsayılan ad değeri "başarılı" dır.
Struts.xml dosyası zamanla büyüyebilir ve bu nedenle onu paketler halinde bölmek, onu modülerleştirmenin bir yoludur, ancak Strutsstruts.xml dosyasını modülerleştirmenin başka bir yolunu sunar. Dosyayı birden çok xml dosyasına bölebilir ve aşağıdaki şekilde içe aktarabilirsiniz.
<?xml version = "1.0" Encoding = "UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="my-struts1.xml"/>
<include file="my-struts2.xml"/>
</struts>
Kapsanmadığımız diğer yapılandırma dosyası struts-default.xml'dir. Bu dosya, Struts için standart yapılandırma ayarlarını içerir ve projelerinizin% 99,99'u için bu ayarlara dokunmanız gerekmez. Bu nedenle bu dosya üzerinde çok fazla detaya girmiyoruz. Eğer ilgileniyorsanız, şuraya bir göz atın:default.properties dosya struts2-core-2.2.3.jar dosyasında mevcuttur.
Struts-config.xml Dosyası
Struts-config.xml yapılandırma dosyası, Web İstemcisindeki Görünüm ve Model bileşenleri arasında bir bağlantıdır, ancak projelerinizin% 99,99'u için bu ayarlara dokunmanız gerekmez.
Yapılandırma dosyası temelde aşağıdaki ana öğeleri içerir -
Sr.No | Durdurucu ve Açıklama |
---|---|
1 | struts-config Bu, yapılandırma dosyasının kök düğümüdür. |
2 | form-beans Burası, ActionForm alt sınıfınızı bir adla eşlediğiniz yerdir. Bu adı, strutsconfig.xml dosyasının geri kalanında ve hatta JSP sayfalarınızda ActionForm'unuz için bir takma ad olarak kullanırsınız. |
3 | global forwards Bu bölüm, web uygulamanızdaki bir sayfayı bir adla eşler. Gerçek sayfaya başvurmak için bu adı kullanabilirsiniz. Bu, web sayfalarınızda URL'lerin kodlanmasını önler. |
4 | action-mappings Bu, form işleyicilerini bildirdiğiniz yerdir ve bunlar aynı zamanda eylem eşlemeleri olarak da bilinir. |
5 | controller Bu bölüm, Struts iç kısımlarını yapılandırır ve pratik durumlarda nadiren kullanılır. |
6 | plug-in Bu bölüm Struts'a bilgi istemleri ve hata mesajları içeren özellikler dosyalarınızı nerede bulacağını söyler. |
Örnek struts-config.xml dosyası aşağıdadır -
<?xml version = "1.0" Encoding = "ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
<!-- ========== Form Bean Definitions ============ -->
<form-beans>
<form-bean name = "login" type = "test.struts.LoginForm" />
</form-beans>
<!-- ========== Global Forward Definitions ========= -->
<global-forwards>
</global-forwards>
<!-- ========== Action Mapping Definitions ======== -->
<action-mappings>
<action
path = "/login"
type = "test.struts.LoginAction" >
<forward name = "valid" path = "/jsp/MainMenu.jsp" />
<forward name = "invalid" path = "/jsp/LoginView.jsp" />
</action>
</action-mappings>
<!-- ========== Controller Definitions ======== -->
<controller contentType = "text/html;charset = UTF-8"
debug = "3" maxFileSize = "1.618M" locale = "true" nocache = "true"/>
</struts-config>
Struts-config.xml dosyası hakkında daha fazla ayrıntı için, lütfen struts belgelerinize bakın.
Struts.properties Dosyası
Bu yapılandırma dosyası, çerçevenin varsayılan davranışını değiştirmek için bir mekanizma sağlar. Aslında, içindeki tüm özelliklerstruts.properties yapılandırma dosyası da yapılandırılabilir web.xml kullanmak init-paramve sabit etiketini kullanarak struts.xmlyapılandırma dosyası. Ancak, her şeyi ayrı tutmak ve daha fazla özelliğe sahip olmak isterseniz, bu dosyayı klasörün altında oluşturabilirsiniz.WEB-INF/classes.
Bu dosyada yapılandırılan değerler, şurada yapılandırılan varsayılan değerleri geçersiz kılar: default.propertieshangi struts2-core-xyzjar dağıtımında bulunur. Kullanarak değiştirmeyi düşünebileceğiniz birkaç özellik vardır.struts.properties dosya -
### When set to true, Struts will act much more friendly for developers
struts.devMode = true
### Enables reloading of internationalization files
struts.i18n.reload = true
### Enables reloading of XML configuration files
struts.configuration.xml.reload = true
### Sets the port that the server is run on
struts.url.http.port = 8080
Burada ile başlayan herhangi bir satır hash (#) yorum olarak kabul edilecek ve tarafından yok sayılacaktır Struts 2.