Javaee implementado en el nombre de dominio
& lt¿Aplicación de red? ¿Versión = "3.0"? xmlns="/xml/ns/javaee "
xmlns:xsi="/xml/ns/javaee?/XML/ns/javaee/we b-app _ 3 _ 0 . xsd " & gt;
<! - ¿Cómo resolver el problema de codificación de cadenas en la página bajo el framework Spring?
Echemos un vistazo al filtro CharacterEncodingFilter proporcionado por el marco Spring.
Este filtro filtra cada solicitud del navegador y luego agrega una función que la clase principal no tiene, que es manejar la codificación de caracteres.
Entre ellos, la codificación se usa para establecer el formato de codificación y forceEncoding se usa para establecer si se ignora. Método request.getCharacterEncoding(), que se establece en verdadero para forzar la sobrescritura del formato de codificación anterior. ->
<filter>
<filter-name>characterEncodingFilter </filter-name>
<filter-class > filtro de codificación de caracteres de primavera. filtro & lt;/filter-class & gt;
& ltinit-param >>p>
& ltparam-name & gt ; codificación</param-name>
<param value>UTF-8</param-value>
</init-param& gt;
& ltinit-param >>p>
& ltparam-name & gt; forceEncoding & lt/param-name & gt;
& ltparam value& gttrue & lt/param-value & gt;
& lt/init-param & gt;
& lt/filter & gt;
& lt filter mapa-filtro>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/* </URL-pattern> ;
& lt/filter-mapping & gt;
& lt! - ?¿Usando Spring en tu proyecto? No hay BeanFactory en el archivo de configuración de applicationContext.xml. ¿Qué sucede si desea clases en la capa empresarial? Se puede hacer referencia a los beans administrados por contenedores Spring directamente en archivos de las siguientes maneras:>
<! -1. Configurar el oyente ContextLoaderListener->> web.XML->;
<! - La función de ContextLoaderListener es ensamblar automáticamente la información de configuración de ApplicationContext al iniciar el contenedor web. Debido a que implementa la interfaz ServletContextListener, cuando el oyente está configurado en web.xml y se inicia el contenedor, los métodos que implementa se ejecutarán de forma predeterminada.
ContextLoaderListener está asociado con la clase ContextLoader, por lo que ContextLoader completa todo el proceso de carga y configuración.
Descripción de su API
¿El primer párrafo explica que ContextLoader puede ser utilizado por? Se generan ContextLoaderListener y ContextLoaderServlet.
Si observa la API de ContextLoaderServlet, puede ver que también está asociada con la clase ContextLoader e implementa la interfaz HttpServlet.
En el segundo párrafo, ¿qué crea ContextLoader? XmlWebApplicationContext es una clase cuya interfaz es webapplicationcontext->Webapplicationcontext configurable->contexto de aplicación->BeanFactory, de modo que todos los beans en primavera son creados por esta clase.
¿IUploaddatafileManager? ¿Administrador de cargas? =?(IUploaddatafileManager)escucha del cargador de contexto getcurrentwebapplicationcontext(). get bean(" administrador de carga ");
-& gt;
& ltListener>
<Listener class>org.spring framework contexto de escucha del cargador <. ;/listener-class>
& lt/listener>
<! -2. Implementar el archivo xml de applicationContext-->;
& lt! -Si no escribe ninguna información de configuración de parámetros en web.xml, la ruta predeterminada es "/web-INF/contexto de aplicación. XML,
El nombre del archivo xml creado en el directorio WEB-INF debe ser applicationContext.xml
Si desea personalizar el nombre del archivo, puede agregar el parámetro de contexto contextConfigLocation:
en web.xml y especificarlo en </param-. value> El nombre del archivo xml correspondiente. Si hay varios archivos xml, se pueden escribir juntos y separarlos por ",".
También puede utilizar comodines en applicationContext-*, como xml -ibatis. -base.XML en este directorio
applicationContext-action.xml, la aplicación context-ibatis-Dao.XML y otros documentos se cargarán juntos
ContextLoaderListener. ContextLoader. , por lo que ContextLoader completa todo el proceso de configuración de carga.
->
& ltContext parámetros>
& ltparam-name >contextConfigLocation & lt/param-name >
< Valor del parámetro>ruta de clase:primavera/aplicación context.XML</param-value>
</context-param>
<! - Si su DispatcherServlet intercepta "/" e intercepta todas las solicitudes de acceso estilo REST a archivos estáticos como *. js y *. jpg también será interceptado. ->
<! -Opción 1: Activar el Servlet predeterminado de Tomcat para procesar archivos estáticos-->;
& lt! -¿Escribirlo delante del despachador? DefaultServlet primero intercepta la solicitud para que la solicitud no ingrese a Spring. Creo que la actuación es la mejor.
->
<servlet mapeo>
<servlet-name>Predeterminado</servlet-name>
<url mode & gt*.css & lt/URL-pattern & gt;
& lt/servlet-mapping & gt;
& ltservlet mapeo& gt
& ltservlet-name>Predeterminado</servlet-name>
& lturl-pattern>*.swf </URL-pattern>
</ servlet-mapping>
& ltservlet-mapping>
& ltservlet -nombre>Predeterminado</nombre-servlet>
& lturl-pattern>*.gif</URL-pattern>
& lt/servlet-mapping>
& ltservlet-mapping>
<servlet-name>Predeterminado</servlet-name>
<url-pattern>*.jpg </URL-pattern>
& lt/servlet -mapping>
& ltservlet-mapping>
& ltservlet-name>Predeterminado</servlet-name>
<url-pattern>*.png</URL-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Predeterminado</servlet-name>
<url-pattern> *.js</URL-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Predeterminado</servlet-name> p>
<url-pattern>*.html</URL-pattern>
</servlet-mapping>
<servlet mapeo>
p><servlet-name> ;Predeterminado</servlet-name>
<url-pattern>*.xml </URL-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Predeterminado</servlet-name>
p><url-pattern>*.json</URL-pattern>
</servlet-mapping>
<servlet mapeo>
<servlet-name>default</se
rvlet-name>
<url-pattern>*.map</URL-pattern>
</servlet-mapping>
<! -¿Con un resorte? MVC, configurar DispatcherServlet es el primer paso. DispatcherServlet es un servlet, por lo que se pueden configurar varios servlets de Dispatcher->;
& lt! - DispatcherServlet es un precontrolador, configurado en el archivo web.xml. Para interceptar solicitudes coincidentes, usted mismo debe definir las reglas de coincidencia de interceptación de Servlet y las solicitudes interceptadas deben distribuirse al controlador de destino (la acción que escribimos) de acuerdo con ciertas reglas de procesamiento. ->
& ltservlet>
<servlet-name>DispatcherServlet</servlet-name><! Durante la inicialización de DispatcherServlet, ¿el marco se aplicará en la web? ¿Encuentra el archivo llamado [servlet-name]-servlet.xml en la carpeta WEB-INF? Haga los beans definidos en el archivo. ->
& ltservlet-class >org. spring framework.web .servlet despachador & lt;/servlet-class > -Indica el nombre del archivo de configuración. En lugar de utilizar el nombre del archivo de configuración predeterminado, utilice el archivo de configuración Dispatcher-servlet.xml. ->
<init-param>
<param-name >contextConfigLocation </param-name>
<! -¿Cuál
& lt! -1, no escribas, usa el valor predeterminado:/web-INF/
& lt! - 2. <param-value>/web-INF/classes/dispatcher-servlet XML </param-value>-& gt;
<! - 3. <param-value>class ruta *:dispatcher-servlet XML </param-value>-& gt;
<! -4. Varios valores están separados por comas -& gt;
& ltparam value& gtclass path:spring/dispatcher-servlet . p></init-param>
<Load-on-startup>1</load-on-startup><! - es la secuencia de inicio para que este servlet pueda iniciarse junto con el contenedor de Servlet. ->
</servlet>
<mapeo de servlet>
<! -El nombre de este Servlet es despachador. Puede haber varios DispatcherServlets, que se distinguen por sus nombres. Cada DispatcherServlet tiene su propio objeto de contexto WebApplicationContext. El ServletContext y el objeto de solicitud se guardan al mismo tiempo.
->
<! -ApplicationContext es el núcleo de Spring y Context generalmente se interpreta como el entorno contextual. Creo que es más fácil de entender usando "contenedor". ApplicationContext es el "contenedor de aplicaciones": p. Spring coloca beans en este contenedor y usa el método getBean para sacarlos cuando sea necesario -& gt;
<servlet-name>DispatcherServlet</servlet-name>
<! - Usted mismo puede definir las reglas de coincidencia de interceptación de servlets. Por ejemplo, al asignar a @RequestMapping("/user/add "), ¿qué tipo de URL es apropiado interceptar? ->
<! -1, interceptar*. Hacer,*. htm,? Por ejemplo:/user/add.do, esta es la forma más tradicional, la más sencilla y práctica. No provocará la interceptación de archivos estáticos (jpg, js, css). ->
<! -2. Intercepción /, como /user/add, puede implementar el ahora popular estilo REST. Muchas aplicaciones de Internet prefieren este estilo de URL. Desventajas: los archivos estáticos (jpg, js, css) no se mostrarán normalmente después de ser interceptados. ? ->
<url-pattern>/</URL-pattern>? <! Se bloquearán las solicitudes con "/" en la URL. -& gt;
& lt/servlet-mapping>
& ltLista de archivos de bienvenida>& lt! -Especificar página de bienvenida->
<Archivo de bienvenida>log en .html </welcome-file>
</welcome-file-list& gt;
<Error - ¿Página>? <! -Cuando ocurra un error 404 en el sistema, salte a la página nopage.html ->
<Error code>404</Error code>
<Location& gt/no page .html</location>
</error-page>
<error-page>? <! -Cuando se produce una java.lang.NullPointerException en el sistema, salte a la página error.html->
<Exception type>Java.lang.nullPointerexception</exception-type>
<location> /error.html</ubicación>
</error-page>
<Configuración de sesión & gt<! - Configuración del tiempo de espera de sesión en minutos ->
<Session-timeout>360 </session-time out>
</session-config> ;
& lt/we B- aplicación & gt;