Videoautomat Web

Aus Salespoint

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „=Einleitung= Frameworks erleichtern die Programmierarbeit in vielerlei Hinsicht. Sie können Datenstrukturen und Prozesse eines bestimmten Anwendungsgebietes vord...“)
(Spring Basics)
Zeile 4: Zeile 4:
==Spring Basics==
==Spring Basics==
Zusätzlich kommt als Webframework Spring zum Einsatz. Dieses Framework stellt ein MVC-Implementierung bereit, die Anfragen an den Webserver annimmt, an den richtigen Controller (das Salespoint-Web-Äquivalent zum ''Salespoint'') weiterleitet, der auf dem Model (Catalogs, Stocks, Users) arbeitet und bestimmt welche View (JSP-Datei also HTML-Templates) als Antwort zum Browser zurückgesendet wird.
Zusätzlich kommt als Webframework Spring zum Einsatz. Dieses Framework stellt ein MVC-Implementierung bereit, die Anfragen an den Webserver annimmt, an den richtigen Controller (das Salespoint-Web-Äquivalent zum ''Salespoint'') weiterleitet, der auf dem Model (Catalogs, Stocks, Users) arbeitet und bestimmt welche View (JSP-Datei also HTML-Templates) als Antwort zum Browser zurückgesendet wird.
-
Spring ist ein sehr umfangreiches Framework und hat viele weitere Einsatzgebiete als Webapplikationen. Es wird kein allumfassendes Verständnis darüber verlangt, bei auftretenden MVC-Problemen sei die Spring-Dokumentation(Achtung: unbedingt Version 3) allerdings '''erste Anlaufstelle'''. Im Folgenden wird ein ganz grober MVC-Überblick von Spring geliefert. Es bestehen '''sehr viele''' andere Konfigurationsmöglichkeiten. Wir verwenden eine annotationenbasierte Konfiguration.
+
Spring ist ein sehr umfangreiches Framework und hat viele weitere Einsatzgebiete als Webapplikationen. Es wird kein allumfassendes Verständnis darüber verlangt, bei auftretenden MVC-Problemen sowie Fragen zur Erweiterung hier angeführter Möglichkeiten sei die [http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ Spring-Dokumentation der Version 3] allerdings '''erste Anlaufstelle'''. Im Folgenden wird ein ganz grober MVC-Überblick von Spring geliefert. Es bestehen '''sehr viele''' andere Konfigurationsmöglichkeiten. Wir verwenden eine annotationenbasierte Konfiguration, die in der SalespointWebBlank.war hinterlegt ist und als Ausgangsbasis für eine neues Rpojekt benutzt werden kann.
 +
 
 +
===Servlet Engine Konfiguration===
 +
In Javabasierten Webprojekten ist eine gewisse Verzeichnisstruktur vorgegeben. Wichtig hierbei ist, dass die Datei ''WebContent/WEB-INF/web.xml'' existiert, welche die grundlegende Konfiguration der Webapplikation darstellt. Neben dem Namen und einer Beschreibung der Applikation wird anhand von URL-Pattern festgelegt, welche Anfragen auf welche Servlets (Javaklassen, die ein gewisses Interface Implementieren) abgebildet werden. Da dies nur wenig Abstraktionsmöglichkeiten zulässt, definieren wir neben einem ''default''-Servlet, das nur statische Dateien wie Bilder, CSS-Dateien, etc. ausliefert, nur einen großen FrontController, der alle Anfragen annimmt und delegieren somit das Abbildungsproblem an diesen. Im Falle von Spring ist dies der ''DisplatchServlet''.
 +
 
 +
'''WebContent/WEB-INF/web.xml'''
 +
<code xml>
 +
<?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_2_5.xsd" id="WebApp_ID" version="2.5">
 +
 
 +
  <!--Basicsettings-->
 +
  <display-name>sp2010_videoautomat_web</display-name>
 +
  <description>SalesPoint2010-BlankWebapplication</description>
 +
 
 +
  <!--Mapping of static resources-->
 +
  <servlet-mapping>
 +
  <servlet-name>default</servlet-name>
 +
  <url-pattern>/static/*</url-pattern>
 +
  </servlet-mapping>
 +
 
 +
  <!--DispatcherConfig-->
 +
  <servlet> 
 +
    <description>Spring MVC Dispatcher Servlet</description> 
 +
    <servlet-name>dispatch</servlet-name> 
 +
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
 +
    <load-on-startup>2</load-on-startup> 
 +
  </servlet>
 +
  <servlet-mapping> 
 +
    <servlet-name>dispatch</servlet-name>
 +
    <url-pattern>/</url-pattern>
 +
  </servlet-mapping>
 +
 
 +
</web-app>
 +
</code>
 +
 
 +
Als Servlet Engine/Container wird Tomcat in der Version 6.x empfohlen.
 +
 
===Spring MVC Prinzip===
===Spring MVC Prinzip===
[[Datei:spring_mvc.png]]
[[Datei:spring_mvc.png]]
 +
 +
Die Grafik stammt aus der Spring Dokumentation und zeigt Spring's MVC-Prinzip. Der Frontcontroller entspricht, wie oben erwähnt, dem DispatchServlet. Dieser wird in der ''WebContent/WEB-INF/dispatch-servlet.xml'' näher konfiguriert.
 +
 +
'''WebContent/WEB-INF/dispatch-servlet.xml'''
 +
<code xml>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<beans xmlns="http://www.springframework.org/schema/beans"
 +
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +
xmlns:p="http://www.springframework.org/schema/p"
 +
xmlns:mvc="http://www.springframework.org/schema/mvc"
 +
xmlns:context="http://www.springframework.org/schema/context"
 +
xsi:schemaLocation="http://www.springframework.org/schema/beans
 +
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 +
        http://www.springframework.org/schema/context
 +
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
 +
        http://www.springframework.org/schema/mvc
 +
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
 +
       
 +
    <!-- messages for i18n -->
 +
1  <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
 +
    p:basename="messages" />
 +
   
 +
    <!-- use the interceptor-enabled annotation based handler mapping -->
 +
2  <bean class="org.salespointframework.web.spring.annotations.SalespointAnnotationHandlerMapping">
 +
    <property name="messageSource" ref="messageSource" />
 +
    </bean>
 +
 +
    <!-- scan this package for annotated controllers -->
 +
3    <context:component-scan base-package="org.salespointframework.web.spring" />
 +
 +
    <!-- very standard viewresolver -->
 +
4    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
 +
        p:prefix="/jsp/" p:suffix=".jsp"/>
 +
 +
</beans>
 +
</code>

Version vom 18:09, 30. Mär. 2010

Inhaltsverzeichnis

Einleitung

Frameworks erleichtern die Programmierarbeit in vielerlei Hinsicht. Sie können Datenstrukturen und Prozesse eines bestimmten Anwendungsgebietes vordefinieren und darüber hinaus einen sauberen Entwurf erzwingen. Dennoch bedeutet ihre Verwendung zunächst einen erhöhten Einarbeitungsaufwand für den Programmierer. Um diesen zu minimieren wurde die folgende Abhandlung geschrieben. Grundlage für das Verständnis dieses Tutorials ist der Technische Überblick über das Framework SalesPoint. Wer diesen bisher noch nicht gelesen hat, wird gebeten diese Abkürzung zu nehmen.

Spring Basics

Zusätzlich kommt als Webframework Spring zum Einsatz. Dieses Framework stellt ein MVC-Implementierung bereit, die Anfragen an den Webserver annimmt, an den richtigen Controller (das Salespoint-Web-Äquivalent zum Salespoint) weiterleitet, der auf dem Model (Catalogs, Stocks, Users) arbeitet und bestimmt welche View (JSP-Datei also HTML-Templates) als Antwort zum Browser zurückgesendet wird. Spring ist ein sehr umfangreiches Framework und hat viele weitere Einsatzgebiete als Webapplikationen. Es wird kein allumfassendes Verständnis darüber verlangt, bei auftretenden MVC-Problemen sowie Fragen zur Erweiterung hier angeführter Möglichkeiten sei die Spring-Dokumentation der Version 3 allerdings erste Anlaufstelle. Im Folgenden wird ein ganz grober MVC-Überblick von Spring geliefert. Es bestehen sehr viele andere Konfigurationsmöglichkeiten. Wir verwenden eine annotationenbasierte Konfiguration, die in der SalespointWebBlank.war hinterlegt ist und als Ausgangsbasis für eine neues Rpojekt benutzt werden kann.

Servlet Engine Konfiguration

In Javabasierten Webprojekten ist eine gewisse Verzeichnisstruktur vorgegeben. Wichtig hierbei ist, dass die Datei WebContent/WEB-INF/web.xml existiert, welche die grundlegende Konfiguration der Webapplikation darstellt. Neben dem Namen und einer Beschreibung der Applikation wird anhand von URL-Pattern festgelegt, welche Anfragen auf welche Servlets (Javaklassen, die ein gewisses Interface Implementieren) abgebildet werden. Da dies nur wenig Abstraktionsmöglichkeiten zulässt, definieren wir neben einem default-Servlet, das nur statische Dateien wie Bilder, CSS-Dateien, etc. ausliefert, nur einen großen FrontController, der alle Anfragen annimmt und delegieren somit das Abbildungsproblem an diesen. Im Falle von Spring ist dies der DisplatchServlet.

WebContent/WEB-INF/web.xml

<?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_2_5.xsd" id="WebApp_ID" version="2.5">
 
<!--Basicsettings-->
<display-name>sp2010_videoautomat_web</display-name>
<description>SalesPoint2010-BlankWebapplication</description>
 
<!--Mapping of static resources-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
 
<!--DispatcherConfig-->
<servlet>
<description>Spring MVC Dispatcher Servlet</description>
<servlet-name>dispatch</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatch</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
 
</web-app>

Als Servlet Engine/Container wird Tomcat in der Version 6.x empfohlen.

Spring MVC Prinzip

Datei:spring_mvc.png

Die Grafik stammt aus der Spring Dokumentation und zeigt Spring's MVC-Prinzip. Der Frontcontroller entspricht, wie oben erwähnt, dem DispatchServlet. Dieser wird in der WebContent/WEB-INF/dispatch-servlet.xml näher konfiguriert.

WebContent/WEB-INF/dispatch-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>															
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">

 
<!-- messages for i18n -->
1 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
p:basename="messages" />
 
<!-- use the interceptor-enabled annotation based handler mapping -->
2 <bean class="org.salespointframework.web.spring.annotations.SalespointAnnotationHandlerMapping">
<property name="messageSource" ref="messageSource" />
</bean>
 
<!-- scan this package for annotated controllers -->
3 <context:component-scan base-package="org.salespointframework.web.spring" />
 
<!-- very standard viewresolver -->
4 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/jsp/" p:suffix=".jsp"/>
 
</beans>
Persönliche Werkzeuge