昨天,在应用开发中,遇到了一个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}
iframe 跨域访问session问题解决方法
webbrowser自动填表,并获取网页源码(iframe框架也可获取网页源码) 实例模拟baidu.com搜索框填入刘阳二字,并执行搜索!并可获取网页HTML源代码,并且支持下载IFRAME框架源代码下载!(因baidu.com无iframe框架...
主要介绍了使用iframe在网页中嵌入其他网页的方法,需要的朋友可以参考下
JS获取iframe内容【简化版】
java iframe应用 jsp j2ee 简单应用
就想弄一个winform结合html5的一个小东西,突有心血来潮,想在里面嵌套一个微信网页版,下面小编给大家介绍下HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版的实现方法,一起看看吧
iframe 与主框架相互访问例子,包含同域访问,跨域访问例子。
首先在父页面的javascript给定义一个window.name,并赋予一个字符串值,如window.name="test",其中赋予的字符串值可以随意定义,然后在Iframe页面的Form 标签中定义target属性,并且其值也必须与之前定义的window....
js控制/获取a.html中iframe加载的b.html中的iframe,很多人都以为getElementById可以直接获取,其实不行的,以上代码就解决了这个问题,js控制iframe加载页面的iframe,不过测试只在IE和火狐通过,谷歌不行,其他自...
js获取iframe中的内容
iframe跨域访问示例
HTML使用iframe标签引用外部网页时,可以设置外部网页的显示比例适配当前iframe的大小,兼容各种浏览器哦
iframe框架\JS获取iframe元素
httpClient和htmlparse获取网页数据使用jar
获取iframe子网页的Height,chrome ff ie10 ie9 ie8 ie7都可以通过,其中chrome需要tomcat一下
iframe网页上下左右布局模板,可以修改里面的css代码来更改各个模块的大小,位置。很基本使用的网页布局模板
在Flex中嵌入完整的网页所用到的类, xmlns:flexiframe="com.google.code.flexiframe.*" <flexiframe:IFrame id="helpFrame" source="assets/dreamweaver/help/helpHome....
iframe根据引用的页面内容自适应高度和宽度,直接查看例子,简单易操作
想要访问量