jsp include包含html頁面產生的亂碼問題


大家都知道在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標簽。(至少我測試是這樣的,如有不正確,請您斧正!)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM