昨天,在应用开发中,遇到了一个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 {}
}
分享到:
相关推荐
iframe.document出现拒绝访问。 threw an exception of type 'System.UnauthorizedAccessException' dynamic {System.UnauthorizedAccessException}
### JS获取iframe内容【简化版】 #### 知识点概览 本文将详细介绍如何通过JavaScript(简称JS)来获取一个内嵌在当前页面中的iframe的内容。这种方法特别适用于那些需要动态加载或更新iframe内部数据的应用场景。...
在Java Web应用中,IFrame常被用来实现页面的部分刷新、加载外部服务或展示多窗口内容。例如,在一个管理界面,可以使用IFrame显示不同模块的数据,而不需要整个页面刷新,提高用户体验。 在JSP中,我们可以通过...
在Web开发中,`iframe` 是一种非常有用的HTML元素,它允许我们在一个页面中嵌入另一个页面的内容。然而,当涉及到跨域时,`iframe` 遇到的问题之一就是无法正常访问父页面或被嵌入页面的`session`。这是因为浏览器的...
然而,由于浏览器的实现差异,获取`iframe`中的子网页高度可能会遇到一些挑战,特别是在处理不同浏览器兼容性问题时。本篇将详细介绍如何在各种浏览器环境下,包括Chrome、Firefox、IE10、IE9、IE8以及IE7,获取`...
总结来说,`iframe`是一个强大的网页设计元素,它可以方便地将其他网页内容嵌入到当前页面中,通过调整其属性,可以实现定制化的展示效果。然而,在使用`iframe`时,也需要考虑到潜在的技术限制和用户体验因素。对于...
iframe 中的内容是由另一个域名下的网页提供的,这意味着我们无法直接访问 iframe 中的内容。这是由于同源策略(Same-Origin Policy)的限制。 同源策略是浏览器的一种安全机制,用于防止不同域名下的网页之间的...
webbrowser自动填表,并获取网页源码(iframe框架也可获取网页源码) 实例模拟baidu.com搜索框填入刘阳二字,并执行搜索!并可获取网页HTML源代码,并且支持下载IFRAME框架源代码下载!(因baidu.com无iframe框架...
3. **Java读取PDF**:使用PDFBox,你可以通过`PDDocument.load()`方法加载PDF文件,然后使用`PDFPage.getGraphics()`获取页面的图形内容。iText提供了`PdfReader`类来读取PDF,并可以使用`PdfStamper`或`PdfCopy`...
在网页开发中,`iframe`(Inline Frame)是一种嵌入其他网页的标签,常用于将外部内容如视频、地图或文章等内容嵌入到当前页面中。然而,由于`iframe`的大小固定,当嵌入的页面内容高度或宽度超过`iframe`设定的尺寸...
就想弄一个winform结合html5的一个小东西,突有心血来潮,想在里面嵌套一个微信网页版,下面小编给大家介绍下HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版的实现方法,一起看看吧
在JavaScript编程中,有时我们需要获取Iframe(内联框架)中的内容,这在处理嵌套页面、跨域通信或者实现动态加载时非常常见。本文将详细介绍如何在各种浏览器,包括Internet Explorer(IE)和Firefox(FF)等主流...
本话题将深入探讨如何使用VB的WebBrowser控件来获取网页框架(frame或iframe)内的内容,以及涉及到的相关知识点。 首先,WebBrowser控件是VB.NET提供的一种用于在应用程序中嵌入Web浏览器功能的组件。通过这个控件...
1. **使用引导页面**:创建一个引导页面,用户必须首先访问这个引导页面,然后通过点击按钮或其他交互方式进入实际的iframe内容。在引导页面上,用户的行为被视为对第三方网站的主动访问,从而允许浏览器存储和读取...
`iframe`的主要用途是在当前网页中嵌入另一个网页或文档,从而实现内容的动态加载和展示。本文将详细介绍如何使用JavaScript来获取`iframe`元素,并进行相关的操作,包括在不同浏览器环境下的兼容性处理。 #### 二...
在Web开发中,"iframe跨域访问"是一个重要的概念,涉及到浏览器的安全策略和网页的嵌入技术。本文将深入探讨这个主题,以便更好地理解和应用。 首先,我们需要了解什么是iframe。Iframe,全称Inline Frame,是HTML...
在现代网页设计和应用开发中,经常需要实现打印功能,以便用户可以将网页内容打印出来进行离线查看或归档。JavaScript(简称JS)提供了多种方式来实现网页内容的打印,包括打印整个页面或页面上的特定区域。本知识点...
3. **iframe跨域问题**:当iframe加载的页面与包含它的页面不在同一个域时,就会出现跨域问题,导致无法直接通过JavaScript进行通信,如获取iframe内的内容、设置iframe的属性等。 **二、iframe跨域的解决方案** 1...
`iframe`加载完成后,可以修改`name`属性并将数据存储其中,主框架通过读取`iframe`的`name`来获取数据。 4. **HTML5的sandbox属性**:`iframe`的`sandbox`属性可以开启一个沙箱模式,限制`iframe`的行为,包括禁止...
【Java网页实时聊天】是一种利用Web技术实现实时通信的应用,尤其在当今互联网时代,用户对即时互动的需求日益增长,这种技术变得尤为重要。本项目基于反向Ajax(也称为Comet技术)实现,旨在提供一个低延迟、高效能...