JavaWeb (a) / / * / ** diferencia

1. web.xml la configuración url-pattern

url-pattern es /

Cuando se utiliza marco SpringMVC, es necesario web.xmlcontrolador frontal configuración DispatcherServlet, configurado para:

<!-- 配置前端控制器 -->
<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
url-pattern de / *

Cuando es necesario utilizar un filtro, es necesario web.xmlestar registrado en. En el procesamiento de filtros de distorsión de China CharacterEncodingFilter, por ejemplo, configurado para:

<!-- 处理中文乱码问题 注:一定要放到所有过滤器之前-->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceRequestEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
url-pattern para el * .do

Cuando se utiliza el marco de trabajo Struts, se configura el centro de control en web.xml ActionServletreglas de bloqueo:

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>3</param-value>
    </init-param>
    <init-param>
        <param-name>application</param-name>
        <param-value>ApplicationResources</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
Descripción resumen
  • url-patternConfiguración /se utiliza para especificarservlet por defecto(Es decir servlet por defecto, o llamado servlet por defecto) de.

    En el gato conf/web.xml, la definición de servlet por defecto:

    <!-- The default servlet for all web applications, that serves static     -->
    <!-- resources.  It processes all requests that are not mapped to other   -->
    <!-- servlets with servlet mappings (defined either here or in your own   -->
    <!-- web.xml file).  This servlet supports the following initialization   -->
    <!-- parameters (default values are in square brackets):                  -->
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    Si hemos configurado en el proyecto /, se anulará el Tomcat servlet por defecto en la figura. De hecho, /y /*que puede coincidir con la totalidad del recurso solicitado, pero su partido prioridades es diferente. /En todos los partidos en el camino, la prioridad más baja, es decir, cuando el otro camino no puede igualar, /el partido será los recursos apropiados servlet por defecto para hacer frente a la solicitud. Y /*coincidencia es superior a la prioridad /y la *.xxruta de acceso (por ejemplo *.do, *.jspotro camino).

  • url-patternConfiguración /*representa el intercepto todas las solicitudes

  • url-patternConfiguración *.dorepresenta intercepta .doel final de la petición

2. Las normas SpringMVC el controlador de bloqueo

SpringMVC la anotación Controlador @RequestMappingreglas de coincidencia soncomodines de estilo hormiga

  • *Medios coinciden con 0 o cualquier número de caracteres
  • **Medios coinciden con 0 o más directorios
  • ?Medios coinciden con cualquier carácter individual

El principio coincidencia más larga: Cuando se solicita camino que coincide con una pluralidad de modos, de acuerdo con la prioridad será ? > * > **para que coincida

Un simple ejemplo:

camino explicación
@RequestMapping (path = "/ petición / *") / Petición / a, / petición / b, / petición /
@RequestMapping (path = "/ requst / **") / Petición / a, / petición / a / b, / petición / a / b / c

3. partido Archivo

Archivo coincide con el segundo punto es el mismo, seguimientocomodines de estilo hormiga

Por ejemplo, cuando se configura ruta MyBatis asignador de archivo XML:

<!--  配置MyBatis  -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!--  指定MyBatis 的 XML 配置文件路径  -->
    <property name="configLocation" value="classpath:mybatis.xml"/>
    <!--  指定映射器 XML 文件路径  -->
    <property name="mapperLocations" value="classpath:mapper/**/*.xml"/>
</bean>

Artículo de referencia

La comprensión en profundidad de la configuración web.xml diferencia / y / * de

y la disposición url-pattern filtro servlet, y reglas de asignación

url-pattern configurado para distinguir "/" y "/ *" en

Supongo que te gusta

Origin www.cnblogs.com/lyldelove/p/12639255.html
Recomendado
Clasificación