JSP引用HTML出现的问题解决

时间:2021-03-24 13:24:51
1.JSP使用<%@include file="*.html"%>引入HTML页面时,会出现中文乱码问题
解决方案一:
  在HTML页面上添加
<%page language="Java" import="java.util.*" pageEncoding="utf-8"%>
  添加<%page pageEncoding="utf-8"%>同样有效,但是不规范


  jsp的编码格式为:<%@ page language="java" import="java.util.*" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>


解决方案二:
在web.xml里统一配置pageEncoding的编码,在web-app标签里添加如下配置:
<jsp-config>  
    <jsp-property-group>  
        <description>html encoding</description>  
        <display-name>JSPConfiguration</display-name>  
        <url-pattern>*.html</url-pattern>  
        <el-ignored>true</el-ignored>  
        <page-encoding>UTF-8</page-encoding>  
        <scripting-invalid>false</scripting-invalid>  
        <include-prelude></include-prelude>  
        <include-coda></include-coda>  
    </jsp-property-group>  
</jsp-config>  


总结:方法一和方法二原理是一样的,都是通过设置pageEncoding编码来指定jsp将html文件include时使用的编码。方法一和方法二任选一种即可,如果同时使用需要注意两个地方设置的pageEncoding编码必须一致,否则将会报如下编码不一致的错误:
org.apache.jasper.JasperException: /in.html (line: 1, column: 2) Page-encoding specified in jsp-property-group (UTF-8) is different from that specified in page directive (GBK)  


2.将html页面转为jsp页面出现乱码问题解决方案:
假设原html编码为utf-8
在html顶部加入
<%@ page pageEncoding="utf-8"%>
然后再修改后缀为.jsp即可,即先修改编码格式再转换为jsp文件