<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<display-name>Spring PetClinic</display-name>

	<description>Spring PetClinic sample application</description>

	<!--
		Key of the system property that should specify the root directory of this
		web app. Applied by WebAppRootListener or Log4jConfigListener.
	-->
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>petclinic.root</param-value>
	</context-param>
	
	

	<!--
		Location of the Log4J config file, for initialization and refresh checks.
		Applied by Log4jConfigListener.
	-->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/classes/log4j.properties</param-value>
	</context-param>

	<!--
		- Location of the XML file that defines the root application context.
		- Applied by ContextLoaderServlet.
		-
		- Can be set to:
		- "/WEB-INF/applicationContext-hibernate.xml" for the Hibernate implementation,
		- "/WEB-INF/applicationContext-jpa.xml" for the JPA one, or
		- "/WEB-INF/applicationContext-jdbc.xml" for the JDBC one.
	-->
	<context-param>
		<param-name>contextConfigLocation</param-name>

		<param-value>/WEB-INF/applicationContext-jdbc.xml</param-value>
		<!--
		<param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>
		<param-value>/WEB-INF/applicationContext-jpa.xml</param-value>
		-->

		<!--
			To use the JPA variant above, you will need to enable Spring load-time
			weaving in your server environment. See PetClinic's readme and/or
			Spring's JPA documentation for information on how to do this.
		-->
	</context-param>

	<!--
		- Configures Log4J for this web app.
		- As this context specifies a context-param "log4jConfigLocation", its file path
		- is used to load the Log4J configuration, including periodic refresh checks.
		-
		- Would fall back to default Log4J initialization (non-refreshing) if no special
		- context-params are given.
		-
		- Exports a "web app root key", i.e. a system property that specifies the root
		- directory of this web app, for usage in log file paths.
		- This web app specifies "petclinic.root" (see log4j.properties file).
	-->
	<!-- Leave the listener commented-out if using JBoss -->
	<!--
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	-->

	<!--
		- Loads the root application context of this web app at startup,
		- by default from "/WEB-INF/applicationContext.xml".
		- Note that you need to fall back to Spring's ContextLoaderServlet for
		- J2EE servers that do not follow the Servlet 2.4 initialization order.
		-
		- Use WebApplicationContextUtils.getWebApplicationContext(servletContext)
		- to access it anywhere in the web application, outside of the framework.
		-
		- The root context is the parent of all servlet-specific contexts.
		- This means that its beans are automatically available in these child contexts,
		- both for getBean(name) calls and (external) bean references.
	-->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!--
	 - Map static resources to the default servlet
	 - examples:
	 -     http://localhost:8080/static/images/pets.png
	 -     http://localhost:8080/static/styles/petclinic.css
	-->
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>/static/*</url-pattern>
	</servlet-mapping>
	
	<!--
		- Servlet that dispatches request to registered handlers (Controller implementations).
		- Has its own application context, by default defined in "{servlet-name}-servlet.xml",
		- i.e. "petclinic-servlet.xml".
		-
		- A web app can contain any number of such servlets.
		- Note that this web app has a shared root application context, serving as parent
		- of all DispatcherServlet contexts.
	-->
	<servlet>
		<servlet-name>petclinic</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>

	<!--
		- Maps the petclinic dispatcher to "*.do". All handler mappings in
		- petclinic-servlet.xml will by default be applied to this subpath.
		- If a mapping isn't a /* subpath, the handler mappings are considered
		- relative to the web app root.
		-
		- NOTE: A single dispatcher can be mapped to multiple paths, like any servlet.
	-->
	<servlet-mapping>
		<servlet-name>petclinic</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

    <filter>
        <filter-name>httpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>httpMethodFilter</filter-name>
        <servlet-name>petclinic</servlet-name>
    </filter-mapping>
    
	<session-config>
		<session-timeout>10</session-timeout>
	</session-config>

	<error-page>
		<exception-type>java.lang.Exception</exception-type>
		<!-- Displays a stack trace -->
		<location>/WEB-INF/jsp/uncaughtException.jsp</location>
	</error-page>

	<!--
		- Reference to PetClinic database.
		- Only needed if not using a local DataSource but a JNDI one instead.
	-->
	<!--
	<resource-ref>
		<res-ref-name>jdbc/petclinic</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
	-->
	
</web-app>
