Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将html计算为包含<;%%的字符串&燃气轮机;带有脚本的标记_Javascript_Java_Html_String_Escaping - Fatal编程技术网

Javascript 将html计算为包含<;%%的字符串&燃气轮机;带有脚本的标记

Javascript 将html计算为包含<;%%的字符串&燃气轮机;带有脚本的标记,javascript,java,html,string,escaping,Javascript,Java,Html,String,Escaping,我的代码中可能有一个小问题,我从一个web服务中得到一个HTML作为响应,该响应以java字符串的形式返回。我想在网页上将此字符串显示为HTML。我面临的问题是,返回的html包含一些以 <% ... %> 标签。这些将按网页上的原样显示。我所希望的是,这些将立即进行评估,而不是在屏幕上显示为文本。 例如,正在显示的文本是 <% if('a' == 'b'){ %> 你好,a 我想把这东西处理掉 提前感谢。如果我理解,您希望从Java字符串中删除这些内容,这

我的代码中可能有一个小问题,我从一个web服务中得到一个HTML作为响应,该响应以java字符串的形式返回。我想在网页上将此字符串显示为HTML。我面临的问题是,返回的html包含一些以

<% ... %>

标签。这些将按网页上的原样显示。我所希望的是,这些将立即进行评估,而不是在屏幕上显示为文本。 例如,正在显示的文本是

<% if('a' == 'b'){ %> 

你好,a

我想把这东西处理掉


提前感谢。

如果我理解,您希望从Java字符串中删除这些内容,这样类似的内容就可以工作了:

String code = "<html> Hello<% if('a' == 'b'){ %>, I'm<% if('a' == 'b'){ %> French</html>";
    int start = 0;
    int end = 0;

    String str = "";

    end = code.indexOf("<%",start); //First substring will do "0 - end";

    while(end != -1 && start != -1){
        str += code.substring(start, end);

        start = code.indexOf("%>",end) +2; //+2 is used to get the index after "%>"
        end = code.indexOf("<%",start); //First occurence of "<%" after the last "%>"
    }

    str += code.substring(start,code.length());//Last substring will do "start - str.len-1"

    System.out.println(str);
String code=“你好,我是法国人”;
int start=0;
int end=0;
字符串str=“”;
end=code.indexOf(“,end)+2//+2用于获取“%>”之后的索引

end=code.indexOf(“您得到的JSP源代码不是纯HTML,所以我会检查原因(这可能不是故意的)。否则您可以查找
并显示错误,或者使用正则表达式(例如
String.replaceAll(“,”)
)删除该错误)。JSP代码的问题是HTML结构可能会根据这些标记的计算方式而改变,因此仅删除它们可能不会得到您想要的结果。@Thomas-是的,没错。每次标记的计算方式都可能不同,因此删除这些标记不是一件明智的事情。可以在运行时对JSP代码进行计算吗每次你都可以将JSP代码移植到JSP引擎来评估它,但是因为它似乎是从第三方服务器发起的,所以我不确定这是明智之举。即使你不考虑安全风险(你完全信任你从该服务器获得的所有代码吗?)您可能会遇到当前类路径上不存在类、数据丢失等问题。我宁愿让服务器评估JSP并返回纯html(或者,如果您愿意,JSON或XML)仅此而已。不,这不是我想要的。请阅读我上面的评论以了解场景。我想要动态评估JSP代码。不同的条件将在页面上显示不同的html。
    String code = "<html>Hello<% if('a' == 'b'){ %>, I'm<% if('a' == 'b'){ %> French</html>";
    String str = code.replaceAll("<%.*?%>", "");
    System.out.println(str);
<html>Hello, I'm French</html>