Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JSP页面样式乱掉:JS编码&解码&HTML转义escape , unescapeJSP页面样式乱掉:JS编码&解码&HTML转义escape , unescape原因分析解决方案测试验证

JSP页面样式乱掉:JS编码&解码&HTML转义escape , unescapeJSP页面样式乱掉:JS编码&解码&HTML转义escape , unescape原因分析解决方案测试验证

作者头像
一个会写诗的程序员
发布于 2018-08-20 01:39:11
发布于 2018-08-20 01:39:11
3.3K00
代码可运行
举报
运行总次数:0
代码可运行

JSP页面样式乱掉:JS编码&解码&HTML转义escape , unescape

Blog功能模块,显示文章详情,文章内容中有jsp代码,页面乱掉。如下图所示

原因分析

在如下的HTML/JSP源代码中,有特殊字符(比如说,html标签,</textarea>)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<textarea>HTML/JSP源代码</textarea>

导致页面样式乱。

解决方案

对“HTML/JSP源代码”这段文本进行escape编码。在js中再进行解码。

jsp页面中对文本的输出进行escape编码,escapeXml="true":

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%--escapeXml:是否转换特殊字符--%>
        <textarea id="blogContent" style="display: none"><c:out value='${blog.content}' escapeXml="true"></c:out></textarea>

在js中对编码后的文本作解码unescape处理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * Created by jack on 2017/3/29.
 */

define(function (require) {
    "use strict";
    require('meditor');

    $(function () {
        var parser = new Mditor.Parser();
        // var blogContent = document.getElementById('blogContent').innerHTML;//这个遇到<>等特殊字符会被转译
        var blogContent = document.getElementById('blogContent').value; //直接取原本的字符串。不会被转译,默认html页面中textarea区域text需要escape编码
        blogContent = unescape(blogContent);//unescape解码
        var html = parser.parse(blogContent);

        $('#rest-blog-body').append(html);


        hljs.initHighlightingOnLoad();
        //源码高亮
        $('pre code').each(function(i, block) {
            hljs.highlightBlock(block);
        });


        //编辑文章
        $('#goEditBlog').on('click',function () {
            var blogId = $('#blogId').val();
            location.href = 'goEditBlog?id=' + blogId;
        });

    });

});

测试验证

验证OK。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.05.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《JSP极简教程》如何在JSP页面输出HTML文本而不被转义innerHTML与valuec:out escapeXml='false'pre标签
讲3种情况: innerHTML与value /** * Created by jack on 2017/3/29. */ define(function (require) { "use strict"; require('meditor'); $(function () { var parser = new Mditor.Parser(); // var blogContent = document.getElementById('blog
一个会写诗的程序员
2018/08/20
1.8K0
6.3 Spring Boot集成mongodb开发小结
本章我们通过SpringBoot集成mongodb,Java,Kotlin开发一个极简社区文章博客系统。
一个会写诗的程序员
2018/08/20
4.2K0
6.3 Spring Boot集成mongodb开发小结
《Kotin 极简教程》第11章 使用Kotlin 集成 SpringBoot开发Web服务端第11章 使用Kotlin集成SpringBoot开发Web服务端《Kotlin极简教程》正式上架:
我们在前面第2章 “ 2.3 Web RESTFul HelloWorld ” 一节中,已经介绍了使用 Kotlin 结合 SpringBoot 开发一个RESTFul版本的 Hello World。当然,Kotlin与Spring家族的关系不止如此。在 Spring 5.0 M4 中引入了一个专门针对Kotlin的支持。
一个会写诗的程序员
2018/08/17
3.3K0
《Kotin 极简教程》第11章 使用Kotlin 集成 SpringBoot开发Web服务端第11章 使用Kotlin集成SpringBoot开发Web服务端《Kotlin极简教程》正式上架:
解决JS操作Cookies出现的乱码问题,修复WordPress评论乱码
为了解决博客纯静态之后无法记住用户信息的问题,我将这个功能改成 JS 操作 Cookie 的方式,将用户信息直接保存到用户本地 cookies 当中,从而脱离 php 不再受缓存的影响。不过,近来偶尔
张戈
2018/03/23
3K0
解决JS操作Cookies出现的乱码问题,修复WordPress评论乱码
javascript转义unicode十六进制编码且带有反斜杠后的html
由于后端返回的html代码中所有标签前后都有反斜杠“\”,且有\uxxxx形式的十六进制unicode编码,如果直接把所有反斜杠替换为%,则会把标签前后的反斜杠一并替换,导致最后无法转义,所以先把十六进制开头的\u替换为%u,则可以使用unescape转码,然后再单独把反斜杠替换为空返回即可。这里使用decodeURI或者decodeURIComponent方法会报错,应该代码格式不对。
蓓蕾心晴
2018/12/28
2K0
JSP中文乱码的产生原因及解决方案
JSP中文乱码的产生原因及解决方案在JSP的开发过程中,经常出现中文乱码的问题,可能一直困扰着大家,现在把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。首先需要了解一下Java中文问题的由来: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文
java达人
2018/01/31
3.6K0
JavaScript学习笔记+常用js用法、范例(二)
javascript 加入如下语句,出错时会提示 注意: chrome、opera 和 safari 等浏览器不支持 window.onerror 事件(w3c标准没有此事件),需另外捕获出错信息
用户6808043
2022/02/24
2.4K0
【AJAX学习笔记】JSON数据编码解码技术
作者:一点一滴的Beer 个人主页:http://www.cnblogs.com/beer
用户1170933
2022/05/10
8170
【AJAX学习笔记】JSON数据编码解码技术
Escape/Unescape,HTML实体编码,敲击码(Tap code),摩尔斯电码(Morse Code)
加密解码/编码解码,又叫%u编码,采用UTF-16BE模式, Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉”%u”后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!因为目前%字符,常用作URL编码,所以%u这样编码已经逐渐被废弃了!
全栈程序员站长
2022/07/21
2.4K0
Escape/Unescape,HTML实体编码,敲击码(Tap code),摩尔斯电码(Morse Code)
中文参数乱码问题——js字符串编码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135446.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
5.1K0
前端XSS相关整理
前端安全方面,主要需要关注 XSS(跨站脚本攻击 Cross-site scripting) 和 CSRF(跨站请求伪造 Cross-site request forgery)
书童小二
2018/10/09
4.9K0
前端XSS相关整理
JSP页面实现验证码校验
在网页页面的使用中为防止“非人类”的大量操作和防止一些的信息冗余,增加验证码校验是许多网站常用的方式。
愷龍
2022/10/28
2.3K0
JavaScript 笔记
    特点:         1. 弱类型          2. 基于对象。(因为面向对象需要具有封装、继承、多态的特征)
卓越笔记
2023/02/18
2.1K0
CSS补充之--页面布局、js补充,dom补充
CSS补充之--页面布局 主站一:(下面是一个大致的模板) <div class="pg-header"> <div style="width: 1200px;margin: 0 a
coders
2018/01/04
4.2K0
CSS补充之--页面布局、js补充,dom补充
2024全网最全面及最新且最为详细的网络安全技巧 七之 XSS漏洞典例分析POC;EXP以及 如何防御和修复[含C++;javascript;html和php源码详解](6)———— 作者:LJS
里面没有HTML编码内容,不考虑,其中href内部是URL,于是直接丢给URL模块处理,但是协议无法识别(即被编码的javascript:),解码失败,不会被执行
盛透侧视攻城狮
2024/10/22
3520
2024全网最全面及最新且最为详细的网络安全技巧 七之 XSS漏洞典例分析POC;EXP以及 如何防御和修复[含C++;javascript;html和php源码详解](6)———— 作者:LJS
Javascript快速入门(上篇)
Javascript的熟练之路,小弟来了。 JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScrip
用户1216676
2018/01/24
1.2K0
Javascript快速入门(上篇)
html中如何写系统时间,在HTML页面获取当前系统时间
var ndate = years+”年”+month+”月”+days+”日 “+hours+”:”+minutes+”:”+seconds+” “+week;
全栈程序员站长
2022/11/02
4.5K0
【Html.js——功能实现】分享点滴(蓝桥杯真题-18555)【合集】
请在 js/index.js 文件中的 TODO 部分,完善 appendParamsToURL 函数,实现以下目标:
Rossy Yan
2025/02/21
3870
【Html.js——功能实现】分享点滴(蓝桥杯真题-18555)【合集】
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以。具体的技术,我后面还会继续写博客的。本人也还在学习中。
谙忆
2021/01/21
1.2K0
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
JavaWeb——HTTP响应协议及Response对象使用方法一点通及案例实战(重定向、输出字符/字节数据到浏览器、验证码实现)
HTTP协议,请求消息是客户端发送给服务器的数据,响应消息是服务器端发送给客户端的数据,其数据格式为:
Winter_world
2020/09/25
1.2K0
JavaWeb——HTTP响应协议及Response对象使用方法一点通及案例实战(重定向、输出字符/字节数据到浏览器、验证码实现)
推荐阅读
《JSP极简教程》如何在JSP页面输出HTML文本而不被转义innerHTML与valuec:out escapeXml='false'pre标签
1.8K0
6.3 Spring Boot集成mongodb开发小结
4.2K0
《Kotin 极简教程》第11章 使用Kotlin 集成 SpringBoot开发Web服务端第11章 使用Kotlin集成SpringBoot开发Web服务端《Kotlin极简教程》正式上架:
3.3K0
解决JS操作Cookies出现的乱码问题,修复WordPress评论乱码
3K0
javascript转义unicode十六进制编码且带有反斜杠后的html
2K0
JSP中文乱码的产生原因及解决方案
3.6K0
JavaScript学习笔记+常用js用法、范例(二)
2.4K0
【AJAX学习笔记】JSON数据编码解码技术
8170
Escape/Unescape,HTML实体编码,敲击码(Tap code),摩尔斯电码(Morse Code)
2.4K0
中文参数乱码问题——js字符串编码
5.1K0
前端XSS相关整理
4.9K0
JSP页面实现验证码校验
2.3K0
JavaScript 笔记
2.1K0
CSS补充之--页面布局、js补充,dom补充
4.2K0
2024全网最全面及最新且最为详细的网络安全技巧 七之 XSS漏洞典例分析POC;EXP以及 如何防御和修复[含C++;javascript;html和php源码详解](6)———— 作者:LJS
3520
Javascript快速入门(上篇)
1.2K0
html中如何写系统时间,在HTML页面获取当前系统时间
4.5K0
【Html.js——功能实现】分享点滴(蓝桥杯真题-18555)【合集】
3870
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
1.2K0
JavaWeb——HTTP响应协议及Response对象使用方法一点通及案例实战(重定向、输出字符/字节数据到浏览器、验证码实现)
1.2K0
相关推荐
《JSP极简教程》如何在JSP页面输出HTML文本而不被转义innerHTML与valuec:out escapeXml='false'pre标签
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档