include 指令和 include 动作引入 jsp 页面时中文乱码
include指令:<%@ include file="new.jsp" %>
include动作:<jsp:include page="new.jsp" flush="true" />
include指令,资源引入发生在JSP页面翻译时,即当JSP容器将页面转换生成Servlet时,include指令将被引入页面的JSP代码完全完全融入,两个页面融合成一个Servlet。不支持传递参数
include动作,资源引入发生在请求页面时,可以使用<jsp:param ... />传递参数
include指令对引入的文件扩展名不做特殊要求
include动作,若引入的文件需要以JSP页面处理,则其文件扩展名必须是.jsp;若使用.jspf为扩展名,则该页面被当做静态文件。
发生中文乱码的解决方法
无论是使用 include 指令还是 include 编码都会产生中文乱码
<%@ include file="header.jsp" %> <!-- include 指令 -->
<jsp:include page="header.jsp" flush="true" /> <!-- include 动作 -->

在被引入的 jsp 文件中加入下面内容指定编码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


备注:
JSP 要经过三个阶段,两次的“编码”,
第一阶段会用 pageEncoding ———> 第二阶段会用 utf-8 至 utf-8 ———> 第三阶段会用 contentType 也就是在客户端浏览器中看到的
第一阶段是 JSP 文件翻译成 Servlet,也就是 .java 文件,这是容器会根据 pageEncoding 的设置读取 jsp 文件, 结果是有指定的编码方法翻译成统一的 UTF-8 的Java源代码,如果 pageEncoding 没有设定或者设定不对,就会出现中文乱码。
第二阶段是 javac 将 java 源代码编译成 java 字节码,不论 JSP 编写时用的什么编码方案,经过这个阶段的结果都是 UTF-8 编码的 java 源代码。javac 使用 UTF-8 的编码读取 java 源代码,编译成 UTF-8 编码的二进制字节码,即 .class 文件,这是 JVM 对常数字符串在二进制内表达的规范。
第三阶段是 Tomcat 或者其他容器载入和执行 java 字节码,输出的结果也就是在客户端浏览器见到的,这个阶段隐藏在第一阶段和第二阶段的 contentType 设定就发挥作用了。
include 指令就是在第一阶段, 即 JSP 页面翻译成 Servlet 时
include 动作发生在第一阶段之前
如果包含文件和被包含文件的编码不一致,在进行编码转换时就可能出现中文乱码
include 指令和 include 动作引入 jsp 页面时中文乱码的更多相关文章
- 转:jsp页面显示中文乱码解决方案
jsp页面显示中文乱码: jsp页面的编码方式有两个地方需要设置: <%@ page language="java" import="java.util.*&quo ...
- JSP页面的中文乱码
jsp页面显示中文乱码: jsp页面的编码方式有两个地方需要设置: <%@ page language="java" import="java.util. ...
- 关于jsp页面 title中文乱码问题的解决方法
我知道了 我jsp饮用了html 是我2个页面都写了Title 然后冲突了 就乱码了 分享给大家
- JSON数据显示在jsp页面上中文乱码的解决办法
在@RequestMapping属性添加属性produces = "text/html;charset=utf-8",设置字符集为utf-8即可 代码如下: @RequestMap ...
- lua返回页面时中文乱码
1.在nginx.conf文件中的server标签里添加charset utf-8; 2.查看lua文件编码是否为utf-8
- 分别应用include指令和include动作标识在一个jsp页面中包含一个文件。
分别应用include指令和include动作标识在一个jsp页面中包含一个文件. hello.jsp <%@ page language="java" import=&qu ...
- [JSP]JSP中include指令和include动作的差别
include指令是编译阶段的指令,即include所包括的文件的内容是编译的时候插入到JSP文件里,JSP引擎在推断JSP页面未被改动,否则视为已被改动. 因为被包括的文件是在编译时才插入的.因此假 ...
- JSP -- include指令与include动作的区别
JSP -- include指令与include动作的区别 (1)格式的区别: include指令:<%@include file = "文件名"%> include动 ...
- 牛客网Java刷题知识点之什么是JSP的3大常用指令、JSP的6大哪些动作、JSP中include指令和include动作有什么区别
不多说,直接上干货! JSP的3大常用指令 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面. 页面指令(Page directive):用来定义JSP页面中特定 ...
随机推荐
- supervisord 进程管家
s supervisor supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到sup ...
- linux下各权限的细分
PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的li ...
- https://www.oschina.net/project/zhlist/326/scripting 开源
1https://www.oschina.net/project/zhlist/326/scripting
- spring boot IDEA 开发微服务
本文是参考:https://blog.csdn.net/u011001084/article/details/79040701 的基础上自己实际操作编写. 在我们开始创建微服务之前,需要安装Cons ...
- w3af的使用
编解码工具 配置身份 基本身份认证 明文用base64编码 NTML认证方式,微软特有的加密方式 form表单身份认证 这样基于表单的认证就配置好了 基于cookie认证 点击后面的感叹号,它会有co ...
- appium多机并行测试
在实际应用中需要对多个机型并行测试,节省时间 多机测试的思路 启动多个appium server与多台机器交互(android和ios均可) 注意:一定要使用node安装appium的命令行,使用 ...
- 一分钟了解Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi (转)
转自:http://blog.csdn.net/a704755096/article/details/46342689 DPI:每英寸像素数 简单的屏幕分辨率计算方法: DisplayMetrics ...
- k8s volume 基本类型分类
volume 类型 静态volume emptyDir 临时空目录, 用途,pod内多用户同享一个目录.与POD的生命周期一至,POD创建时创建,删除时删除. Hostpath 宿主机1:1映射,用途 ...
- poj 1170状压dp
题目链接:https://vjudge.net/problem/POJ-1170 题意:输入n,表示有那种物品,接下来n行,每行a,b,c三个变量,a表示物品种类,b是物品数量,c代表物品的单价.接下 ...
- 【git】gitignore
gitignore git专门有个文件用来管理那些不被纳入版本库的文件,这个文件是 [.gitignore],所有不被包含的都能放进去,但这个是有前提的. 前提 前提是文件如果没被git客户端trac ...