`

iframe拒绝访问 java 读取网页内容

阅读更多
昨天,在应用开发中,遇到了一个iframe跨域拒绝访问的问题,在网上找了半天,最后,决定使用java重定向读取网页内容显示的办法解决,可是在java读取网页内容的时候,有碰到了乱码问题,网上也有好多的解决办法,可是都不适用,琢磨到今天,终于解决了,先贴出来,与大家分享一下。

关键语句在于:new InputStreamReader(conn.getInputStream(),
                 conn.getContentEncoding()!=null?conn.getContentEncoding():"UTF-8"))。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetHtmlContentByURL extends HttpServlet {

private static final long serialVersionUID = 1L;

public GetHtmlContentByURL() {
   super();
}

public void destroy() {
   super.destroy();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
   String htmlUrl = request.getParameter("url");
   response.setCharacterEncoding("UTF-8");
   URL url = null;
   URLConnection conn = null;
   PrintWriter out = null;
     try { 
         out = response.getWriter();
         url = new URL(htmlUrl);
         conn = url.openConnection();
         //将网页文件默认设置为UTF-8字符集,
           BufferedReader reader = new BufferedReader(
               new InputStreamReader(conn.getInputStream(),
                 conn.getContentEncoding()!=null?conn.getContentEncoding():"UTF-8"));
            String line = null;
            while ((line=reader.readLine()) != null){
                out.println(line);
            }

        out.flush();
        reader.close();
     } catch (Exception ex) {   
         ex.printStackTrace();
     } finally { 
     if(out!=null){
        try{
         out.close();
        }catch(Exception e){
         e.printStackTrace();
        }
     }
     } 
}

public void doPost(HttpServletRequest request, 
                    HttpServletResponse response) 
                        throws ServletException, IOException {
   this.doGet(request, response);
}

public void init() throws ServletException {}
}
1
2
分享到:
评论

相关推荐

    iframe读取document出现拒绝访问

    iframe.document出现拒绝访问。 threw an exception of type 'System.UnauthorizedAccessException' dynamic {System.UnauthorizedAccessException}

    JS获取iframe内容【简化版】

    ### JS获取iframe内容【简化版】 #### 知识点概览 本文将详细介绍如何通过JavaScript(简称JS)来获取一个内嵌在当前页面中的iframe的内容。这种方法特别适用于那些需要动态加载或更新iframe内部数据的应用场景。...

    java iframe应用 jsp j2ee

    在Java Web应用中,IFrame常被用来实现页面的部分刷新、加载外部服务或展示多窗口内容。例如,在一个管理界面,可以使用IFrame显示不同模块的数据,而不需要整个页面刷新,提高用户体验。 在JSP中,我们可以通过...

    iframe 跨域访问session

    在Web开发中,`iframe` 是一种非常有用的HTML元素,它允许我们在一个页面中嵌入另一个页面的内容。然而,当涉及到跨域时,`iframe` 遇到的问题之一就是无法正常访问父页面或被嵌入页面的`session`。这是因为浏览器的...

    获取iframe子网页的Height

    然而,由于浏览器的实现差异,获取`iframe`中的子网页高度可能会遇到一些挑战,特别是在处理不同浏览器兼容性问题时。本篇将详细介绍如何在各种浏览器环境下,包括Chrome、Firefox、IE10、IE9、IE8以及IE7,获取`...

    使用iframe在网页中嵌入其他网页的方法

    总结来说,`iframe`是一个强大的网页设计元素,它可以方便地将其他网页内容嵌入到当前页面中,通过调整其属性,可以实现定制化的展示效果。然而,在使用`iframe`时,也需要考虑到潜在的技术限制和用户体验因素。对于...

    js获取iframe中的内容

    iframe 中的内容是由另一个域名下的网页提供的,这意味着我们无法直接访问 iframe 中的内容。这是由于同源策略(Same-Origin Policy)的限制。 同源策略是浏览器的一种安全机制,用于防止不同域名下的网页之间的...

    webbrowser自动填表,并获取网页源码(iframe框架也可获取网页源码)

    webbrowser自动填表,并获取网页源码(iframe框架也可获取网页源码) 实例模拟baidu.com搜索框填入刘阳二字,并执行搜索!并可获取网页HTML源代码,并且支持下载IFRAME框架源代码下载!(因baidu.com无iframe框架...

    java读取PDF显示于浏览器

    3. **Java读取PDF**:使用PDFBox,你可以通过`PDDocument.load()`方法加载PDF文件,然后使用`PDFPage.getGraphics()`获取页面的图形内容。iText提供了`PdfReader`类来读取PDF,并可以使用`PdfStamper`或`PdfCopy`...

    iframe根据页面内容自适应高度和宽度

    在网页开发中,`iframe`(Inline Frame)是一种嵌入其他网页的标签,常用于将外部内容如视频、地图或文章等内容嵌入到当前页面中。然而,由于`iframe`的大小固定,当嵌入的页面内容高度或宽度超过`iframe`设定的尺寸...

    HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版的实现方法

    就想弄一个winform结合html5的一个小东西,突有心血来潮,想在里面嵌套一个微信网页版,下面小编给大家介绍下HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版的实现方法,一起看看吧

    [导入]Javascript获取IFrame内容(兼容IE&FF)

    在JavaScript编程中,有时我们需要获取Iframe(内联框架)中的内容,这在处理嵌套页面、跨域通信或者实现动态加载时非常常见。本文将详细介绍如何在各种浏览器,包括Internet Explorer(IE)和Firefox(FF)等主流...

    VB获取网页框架内容

    本话题将深入探讨如何使用VB的WebBrowser控件来获取网页框架(frame或iframe)内的内容,以及涉及到的相关知识点。 首先,WebBrowser控件是VB.NET提供的一种用于在应用程序中嵌入Web浏览器功能的组件。通过这个控件...

    safari,opera嵌入iframe页面cookie读取问题解决方法

    1. **使用引导页面**:创建一个引导页面,用户必须首先访问这个引导页面,然后通过点击按钮或其他交互方式进入实际的iframe内容。在引导页面上,用户的行为被视为对第三方网站的主动访问,从而允许浏览器存储和读取...

    iframe框架\JS获取iframe元素

    `iframe`的主要用途是在当前网页中嵌入另一个网页或文档,从而实现内容的动态加载和展示。本文将详细介绍如何使用JavaScript来获取`iframe`元素,并进行相关的操作,包括在不同浏览器环境下的兼容性处理。 #### 二...

    iframe跨域访问示例

    在Web开发中,"iframe跨域访问"是一个重要的概念,涉及到浏览器的安全策略和网页的嵌入技术。本文将深入探讨这个主题,以便更好地理解和应用。 首先,我们需要了解什么是iframe。Iframe,全称Inline Frame,是HTML...

    js调用iframe实现打印页面内容的方法

    在现代网页设计和应用开发中,经常需要实现打印功能,以便用户可以将网页内容打印出来进行离线查看或归档。JavaScript(简称JS)提供了多种方式来实现网页内容的打印,包括打印整个页面或页面上的特定区域。本知识点...

    完美解决iframe跨域问题

    3. **iframe跨域问题**:当iframe加载的页面与包含它的页面不在同一个域时,就会出现跨域问题,导致无法直接通过JavaScript进行通信,如获取iframe内的内容、设置iframe的属性等。 **二、iframe跨域的解决方案** 1...

    iframe与主框架跨域相互访问

    `iframe`加载完成后,可以修改`name`属性并将数据存储其中,主框架通过读取`iframe`的`name`来获取数据。 4. **HTML5的sandbox属性**:`iframe`的`sandbox`属性可以开启一个沙箱模式,限制`iframe`的行为,包括禁止...

    Java网页实时聊天

    【Java网页实时聊天】是一种利用Web技术实现实时通信的应用,尤其在当今互联网时代,用户对即时互动的需求日益增长,这种技术变得尤为重要。本项目基于反向Ajax(也称为Comet技术)实现,旨在提供一个低延迟、高效能...

Global site tag (gtag.js) - Google Analytics