Tomcat publica el nombre de dominio del proyecto web
ltAplicació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;
lt! - ¿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. - gt;
lt filter gt
lt nombre del filtro gtcharacterEncodingFilter lt/filter-name gt;
ltfilter-class gt org.spring web. filtro . filtro de codificación de caracteres lt;/filter-class gt;
ltinit-param
ltparam-name gt; codificación lt/param-name gt;
lt valor del parámetro gtUTF-8 lt;/param-value gt;
lt/init-param gt;
ltinit-param>
ltparam- nombre gt; forceEncoding lt/param-name gt;
lt valor del parámetro gttrue lt/param-value gt;
lt/init-param gt; /filter gt;
lt mapeo de filtro gt
lt nombre de filtro gtcharacterEncodingFilter lt/filter-name gt
lturl mode gt/* lt; patrón gt;
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 directa a los beans administrados por contenedores Spring en archivos de las siguientes maneras: gt;
lt! -1. Configurar el oyente ContextLoaderListener->> web.XML->;
lt! - 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-gt configurable; contexto de aplicación-gt
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;
ltlistenergt
ltListener class gtorg contexto del cargador web. /listener-class gt;
lt/listener gt;
lt! -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:
Especifique el nombre del archivo xml correspondiente si lo hay. varios archivos xml, se pueden escribir juntos y separados por ","
También puede usar comodines en applicationContext-*, como application context-ibatis -base. >
applicationContext-action.xml, application context-ibatis-Dao. XML y otros documentos se cargarán juntos
ContextLoaderListener está asociado con la clase ContextLoader. Todo el proceso de configuración de carga lo completa ContextLoader. .
- gt;
lt parámetro de contexto gt
ltparam-name gt; contextConfigLocation lt/param-name gt;
lt valor del parámetro gtclass ruta: primavera/aplicación contexto . XML lt;/param-value gt;
lt/context-param gt;
lt! - 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. - gt;
lt! -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.
- gt;
mapeo de ltservlet gt
ltservlet-name gt; predeterminado lt/servlet-name gt
modo lturl gt*.css lt/URL-; patrón gt;
lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet-name gt;predeterminado lt/servlet-name gt;
patrón lturl gt*.swf lt/URL-pattern gt;
lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet- nombre gt; predeterminado lt/nombre-servlet gt;
patrón lturl gt*.gif lt/patrón-URL gt
lt/mapeo-servlet
mapeo de ltservlet gt
nombre-ltservlet gt; predeterminado lt/nombre-servlet gt
patrón lturl gt*.jpg lt/patrón-URL gt; p> lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet-name gt; predeterminado lt/servlet-name gt
lturl mode gt* .png lt/URL-pattern gt;
lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet-name gt; nombre gt;
patrón lturl gt*.js lt/URL-pattern gt;
lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet-name gt; predeterminado lt/servlet-name gt;
patrón lturl gt*.html lt/URL-pattern gt
lt/servlet-mapping gt; ;
mapeo de ltservlet gt
nombre-ltservlet gt; predeterminado lt/nombre-servlet gt
patrón lturl gt*.xml lt/patrón-URL gt; ;
lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet-name gt; predeterminado lt/servlet-name gt;
patrón lturl gt*.json lt/URL-pattern gt;
lt/servlet-mapping gt;
ltservlet mapeo gt
ltservlet-name gt ;Predeterminado lt/nombre-servlet gt
;
patrón lturl gt*.map lt/URL-pattern gt;
lt/servlet-mapping gt;
lt! -¿Con un resorte? MVC, configurar DispatcherServlet es el primer paso. DispatcherServlet es un servlet, por lo que se pueden configurar múltiples 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. - gt;
ltservlet gt
ltservlet-nombre gt; DispatcherServlet lt/servlet-nombre gt; 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. - gt;
ltservlet-class gt;org. spring framework .servlet .despachador lt;/servlet-class gt; -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. - gt;
ltinit-param
ltparam-name gt; contextConfigLocation lt/param-name gt;
lt! - ¡Qué
es! -1, no escribas, usa el valor predeterminado: /web-INF/
lt! - 2. lt valor del parámetro gt/web-INF/classes/dispatcher-servlet lt;/param-value gt; - 3. valor del parámetro lt ruta de clase gt *: servlet-despachador. XML lt;/valor-param gt; -4. Varios valores están separados por comas - gt;
lt valor del parámetro gtclass ruta: spring/dispatcher-servlet. XML lt;/param-value gt; /init -param gt;
ltCargar gt1 al iniciar lt;/load-on-startup lt; - es la secuencia de inicio para que este servlet pueda iniciarse junto con el contenedor de Servlet. - gt;
lt/servlet gt;
ltservlet mapeo gt
lt! -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.
- gt;
lt! -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; -nombre gt; DispatcherServlet lt/servlet-nombre gt;
lt! - 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? - gt;
lt! -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á que se intercepten archivos estáticos (jpg, js, css). - gt;
lt! -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. ? - gt;
patrón lturl gt/lt;/patrón-URL gt;? ¡Es! Se bloquearán las solicitudes con "/" en la URL. - gt;
lt/servlet-mapping gt;
lt¡Lista de archivos de bienvenida gt lt! -Especificar página de bienvenida- gt;
ltArchivo de bienvenida gtlog en html lt;/welcome-file gt;
lt/welcome-file-list gt;
ltError-pagegt? ¡Es! - Cuando se produce un error 404 en el sistema, salte a la página nopage.html - gt;
lt código de error gt404 lt/código de error gt
lt ubicación gt/no página. html lt ;/ubicación gt;
lt/página-error gt;
página-error gt? ¡Es! -Cuando se produce una excepción java.lang.NullPointerException en el sistema, salte a la página error.html - gt;
ltException typegtJava . nullpointerexception lt;/exception-type gt; >ltubicación>/error.htmllt;/ubicación>
lt/error-page>
ltconfiguración de sesión>lt! - Configuración del tiempo de espera de la sesión, en minutos - gt;
lt session-timeout gt360 lt/session-time out gt
lt/session-config gt; > lt/we B- aplicación gt;