第2.2章 WEB系统最佳实践Web.xml配置

来源:互联网 发布:mysql是大型数据库吗 编辑:程序博客网 时间:2024/04/30 08:32

web.xml包含el表达式配置、激活Tomcat的defaultServlet来处理静态文件配置、kaptcha验证码 配置、spring配置、字符集过滤器、shiro权限过滤、CORS跨域访问配置、Gzip静态过滤 配置、特殊字符过滤器、SpringMVC配置、Hessian配置等
CORS配置依赖

<dependency>            <groupId>com.thetransactioncompany</groupId>            <artifactId>cors-filter</artifactId>        </dependency>

kaptcha配置依赖

<dependency>            <groupId>com.github.axet</groupId>            <artifactId>kaptcha</artifactId>        </dependency>

hessian配置依赖

<dependency>            <groupId>com.caucho</groupId>            <artifactId>hessian</artifactId>            <version>4.0.38</version>        </dependency>

完整的web.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="3.0"    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">    <!-- el表达式配置 -->    <jsp-config>        <jsp-property-group>            <url-pattern>*.jsp</url-pattern>            <el-ignored>false</el-ignored>        </jsp-property-group>    </jsp-config>    <!-- 激活Tomcat的defaultServlet来处理静态文件 -->    <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>*.jpg</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>*.gif</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>*.png</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>*.js</url-pattern>    </servlet-mapping>    <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>*.css</url-pattern>    </servlet-mapping>    <!-- kaptcha验证码 -->    <servlet>        <servlet-name>kaptcha</servlet-name>        <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>        <!-- 是否有边框 -->        <init-param>            <param-name>kaptcha.border</param-name>            <param-value>no</param-value>        </init-param>        <!-- 字体颜色 -->        <init-param>            <param-name>kaptcha.textproducer.font.color</param-name>            <param-value>red</param-value>        </init-param>        <!-- 图片宽度 -->        <init-param>            <param-name>kaptcha.image.width</param-name>            <param-value>125</param-value>        </init-param>        <!-- 使用哪些字符生成验证码 -->        <init-param>            <param-name>kaptcha.textproducer.char.string</param-name>            <param-value>ACDEFHKPRSTWX345679</param-value>        </init-param>        <!-- 图片高度 -->        <init-param>            <param-name>kaptcha.image.height</param-name>            <param-value>45</param-value>        </init-param>        <!-- 字体大小 -->        <init-param>            <param-name>kaptcha.textproducer.font.size</param-name>            <param-value>43</param-value>        </init-param>        <!-- 干扰线的颜色 -->        <!-- <init-param> <param-name>kaptcha.noise.color</param-name> <param-value>black</param-value>             </init-param> -->        <init-param>            <param-name>kaptcha.noise.impl</param-name>            <param-value>com.google.code.kaptcha.impl.NoNoise </param-value>        </init-param>        <!-- 字符个数 -->        <init-param>            <param-name>kaptcha.textproducer.char.length</param-name>            <param-value>4</param-value>        </init-param>        <!-- 使用哪些字体 -->        <init-param>            <param-name>kaptcha.textproducer.font.names</param-name>            <param-value>Arial</param-value>        </init-param>    </servlet>    <servlet-mapping>        <servlet-name>kaptcha</servlet-name>        <url-pattern>/resources/images/kaptcha.jpg</url-pattern>    </servlet-mapping>    <!-- <security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern>         <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method>         <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection>         <auth-constraint> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee>         </user-data-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method>         </login-config> -->    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath*:/spring.xml</param-value>    </context-param>    <!-- 字符集 过滤器 -->    <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>forceEncoding</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>CharacterEncodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!-- shiro filter -->    <filter>        <filter-name>shiroFilter</filter-name>        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>        <init-param>            <param-name>targetFilterLifecycle</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>shiroFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!-- CORS配置 -->    <filter>        <filter-name>CORS</filter-name>        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>        <init-param>            <param-name>cors.allowOrigin</param-name>            <param-value>*</param-value>        </init-param>        <init-param>            <param-name>cors.supportedMethods</param-name>            <param-value>GET, POST, HEAD, PUT, DELETE</param-value>        </init-param>        <init-param>            <param-name>cors.supportedHeaders</param-name>            <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>        </init-param>        <init-param>            <param-name>cors.exposedHeaders</param-name>            <param-value>Set-Cookie</param-value>        </init-param>        <init-param>            <param-name>cors.supportsCredentials</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>CORS</filter-name>        <url-pattern>/rest/*</url-pattern>    </filter-mapping>    <!-- Gzip静态过滤 -->    <filter>        <filter-name>GzipFilter</filter-name>        <filter-class>com.dzmsoft.framework.base.web.filter.GzipFilter</filter-class>        <init-param>            <param-name>headers</param-name>            <param-value>Content-Encoding=gzip</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>GzipFilter</filter-name>        <url-pattern>*.gzjs</url-pattern>    </filter-mapping>    <filter-mapping>        <filter-name>GzipFilter</filter-name>        <url-pattern>*.gzcss</url-pattern>    </filter-mapping>    <!-- 特殊字符过滤器 -->    <filter>        <filter-name>charFilter</filter-name>        <filter-class>com.dzmsoft.framework.base.web.filter.CharFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>UTF-8</param-value>        </init-param>        <init-param>            <param-name>legalNames</param-name>            <param-value></param-value>        </init-param>        <init-param>            <param-name>illegalChars</param-name>            <param-value><![CDATA[|,$,',",\',\",<,>,(,),+,CR,LF,\",",\,http]]></param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>charFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!-- Spring view分发器 -->    <servlet>        <servlet-name>spring-mvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath*:/spring/spring-mvc.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>spring-mvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>    <servlet>        <servlet-name>hessian-servlet</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath*:/spring/spring-hession-server.xml</param-value>        </init-param>        <load-on-startup>2</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>hessian-servlet</servlet-name>        <url-pattern>/hessian/*</url-pattern>    </servlet-mapping>    <mime-mapping>        <extension>css</extension>        <mime-type>text/css</mime-type>    </mime-mapping>    <mime-mapping>        <extension>gzcss</extension>        <mime-type>text/css</mime-type>    </mime-mapping></web-app>
0 0