jsp中include乱码的三种解决方案
问题描述:<%@ include file="/footer.html" %> 的中文乱码问题
第一种情况可以修改被include的文件:
1.当jsp include动态文件时(jsp文件)可以在被include的jsp文件头部加上代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
可以解决。
2.当jsp include静态文件时(html文件)可以在被include的html文件的<head></head>标签内加上代码:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
同样可以解决。
3.最简单的方法,在 Tomcat 5.0.x 中,Tomcat 支持了 JSP 2.0 的规格,同时也支持了部分 J2EE 1.4 的规格,在 J2EE 1.4 的规格中,有关 JSP 的部份,有一个 <jsp-config> 的 XML Tag,这个 XML 区块用来定义与 JSP 相关的特殊属性,包含采用的 taglib 与 以下说明的 <jsp-property-group> ,而解决 include 档中文问题的方法就定义在 <jsp-roperty-group> 中。
此时可以修改tomcat的web.xml达到目的
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <jsp-config>
- <jsp-property-group>
- <description>
- Special property group for JSP Configuration JSP
- example.
- </description>
- <display-name>JSPConfiguration</display-name>
- <url-pattern>*.jsp</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>
- <description>
- Special property group for JSP Configuration JSP
- example.
- </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>
- </web-app>
其中jsp-config一段是用来说明你要将包含的页面默认按照什么编码格式包含。web-app 标签的version必须是2.4的。
附带说明:
<jsp-config> 元素主要用来设定JSP 相关配置
<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素。
<taglib>元素在JSP 1.2 时就已经存在;
<jsp-property-group>是JSP 2.0 新增的元素:
<jsp-property-group>元素主要有八个子元素,它们分别为:
<description>:设定的说明;
<display-name>:设定名称;
<url-pattern>:设定值所影响的范围,如: /*.jsp;
<el-ignored>:若为true,表示不支持EL 语法;
<scripting-invalid>:若为true,表示不支持<% scripting %>语法;
<page-encoding>:设定JSP 网页的编码;
<include-prelude>:设置JSP 网页的抬头,扩展名为.jsp
<include-coda>:设置JSP 网页的结尾,扩展名为.jsp
自定义的tag也需要放在<jsp-config>中间
- <jsp-config>
- <taglib>
- <taglib-uri>Taglib</taglib-uri>
- <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>
- </taglib>
- </jsp-config>
欢迎转载,请注明出处:亲亲宝宝