大家都知道在jsp中include的有兩種方式,一種是<jsp:include page="">,另一種是<%@ include file=""%>
在jsp中包含一個靜態文件(.html)會產生亂碼問題,此時有兩種解決方案:
方法一:
可以在每一個html文件中第一行添加<%@ page contentType="text/html;charset=UTF-8" language="java" %>
並用<%@ include file=""%>方式包含,如果你用的是<jsp:include page="">,則不僅會出現亂碼,還會出現<%@ page contentType="text/html;charset=UTF-8" language="java" %>這一句代碼。
方法二:
jsp-config方式解決問題,在項目的web.xml中加入如下配置。
<jsp-config> <jsp-property-group> <description>jsp encoding example</description> <display-name>JSPConfiguration</display-name> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> <page-encoding>UTF-8</page-encoding> <scripting-invalid>false</scripting-invalid> </jsp-property-group> <jsp-property-group> <display-name>JSPConfiguration</display-name> <url-pattern>*.html</url-pattern> <el-ignored>true</el-ignored> <page-encoding>UTF-8</page-encoding> <scripting-invalid>true</scripting-invalid> </jsp-property-group> </jsp-config>
其中el-ignored:是否忽視EL表達式,scripting-invalid:是否讓<%%>腳本無效
這個方法有個缺點,就是如果你這樣在xml中配置了該段代碼,那么每一個html都會被服務器當成jsp運行,也就是說在html中可以使用<c:if></c:if>、<jsp:include>等jsp標簽。(至少我測試是這樣的,如有不正確,請您斧正!)
