首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何显示包含来自jsp的javascript的外部网站?

如何显示包含来自jsp的javascript的外部网站?
EN

Stack Overflow用户
提问于 2018-08-21 02:20:35
回答 1查看 281关注 0票数 0

我必须在jsp中嵌入一个HTML文件。此HTML文件是动态的,必须根据用户请求进行下载。我尝试的是下载目录中的html,然后从jsp中显示它。

为此,我尝试的方法之一是这样的:

代码语言:javascript
复制
public void doGet(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException {
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    String externalWeb = "external";
    String externalWebValue = request.getParameter(externalWeb);
    _saveUrl(externalWebValue);
    StringBuilder contentBuilder = new StringBuilder();
    try {
         BufferedReader in = new BufferedReader(new FileReader("/pathToExternal/external.html"));
         String str;
         while ((str = in.readLine()) != null) {
             contentBuilder.append(str);
         }
         in.close();
    } catch (IOException e) {
    }
    String content = contentBuilder.toString();
    String page = content;
    request.setAttribute("page", page); 
    request.getRequestDispatcher("/web/external.jsp").forward(request, response);     

    }


private void _saveUrl(String externalWebValue) {      
    try {
        PrintWriter outputFile = new PrintWriter("pathTo/external.html");
        URL url = new URL(externalWebValue);
        URLConnection con = url.openConnection();
        InputStream is =con.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String line = null;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
            outputFile.println(line);
        }
        outputFile.close(); 
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }        
}

我试着直接从网页上阅读。但同样的问题是,javascripts无法工作,页面内容也无法加载。

但是,当我只是点击下载的html时,一切都正常工作,但当我在jsp中导入它时,却什么都不起作用。我该如何解决这个问题呢?

尝试将其包含在jsp中,如下所示:

代码语言:javascript
复制
<%@ include file="/web/external.html" %>

还是不走运。在不使用iframe的情况下,最好的方法是什么?(我计划呈现的网站不支持iframe)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-21 06:32:37

上述问题的解决方案是在jsp中添加以下内容:

代码语言:javascript
复制
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

<html>
   <head>
      <title> Tag Example</title>
   </head>

   <body>
      <c:import var = "data" url = "${page}"/>
      <c:out value = "${data}" escapeXml="false"/>
   </body>
</html>

在servlet中添加了以下内容:

代码语言:javascript
复制
request.setAttribute("page", externalWebValue); 

使用了c tag library,并且不得不使用escapeXml="false"来实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51936505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档