Java 利用 HttpURLConnection 读取页面 返回字节流(生成静态页面)

注:若需要被静态化的 页面中 使用了 response.sendRedirect跳转,则最后静态页面为 最终跳转后的页面。

而那些 使用js 跳转的 比如 window.location.href 则 无效,直接作为js代码在生成的静态页面中,并执行。

//保存为文件
import java.io.*;
public class GenerateIndexPage {

	protected static String defaultToFile = "frame/main_Null.html";
	protected static String defaultFromFile = "http://localhost:8080/stfb/frame/main_Null.jsp";
    String result = "";

	public String genHtml(String fromFile,String toFile) throws Exception {
		if("".equals(fromFile)||fromFile==null){
			fromFile = defaultFromFile;
		}
		if("".equals(toFile)||toFile==null){
			toFile = defaultToFile;
		}
		java.net.URL url = new java.net.URL(fromFile);
		java.net.HttpURLConnection conn =(java.net.HttpURLConnection) url.openConnection();
		try{
			if (conn.getResponseCode() == 200) {

				java.io.InputStream is = (java.io.InputStream) conn.getContent();
				try{
					ConfigInfo cfn = new ConfigInfo();
					String server_path = cfn.getValue("server_path");
					String savePath = server_path+"\\"+toFile;
					FileOutputStream baos = new FileOutputStream(new File(savePath));
					int buffer = 1024;
					byte[] b = new byte[buffer];
					int n = 0;
					while ((n = is.read(b, 0, buffer)) > 0) {
						baos.write(b, 0, n);
					}
					//String s = new String(baos.toByteArray(), WEATHER_HTML_CHARSET);
					is.close();
					baos.close();
					result = "生成成功";
				}catch(Exception e){
					result="写文件过程出错,取消生成。";
				}
			}else{
				result="获得链接过程出错,取消生成。";
			}
		}catch(Exception e){
				e.printStackTrace();
				result="获得内容过程出错,取消生成。";
		}
		return result;
	}

}

//返回字节流

public String getHtml(JspWriter out) throws Exception {
	//System.setProperty("http.proxyHost", "isaserver");System.setProperty("http.proxyPort", "80");
	java.net.URL url = new java.net.URL("http://weather.china.com.cn/city/58362_zx.html");
	java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection();
	if (conn.getResponseCode() == 200) {
		java.io.InputStream is = (java.io.InputStream) conn.getContent();
		java.io.ByteArrayOutputStream baos =
			new java.io.ByteArrayOutputStream();

		int buffer = 1024;
		byte[] b = new byte[buffer];
		int n = 0;
		while ((n = is.read(b, 0, buffer)) > 0) {
			baos.write(b, 0, n);
		}
		String s = new String(baos.toByteArray(), "UTF-8");
		is.close();
		baos.close();
		return s;
	}
	return "";
}

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skinchqqhah/p/10351580.html

时间: 2024-10-01 04:31:07

Java 利用 HttpURLConnection 读取页面 返回字节流(生成静态页面)的相关文章

Java项目生成静态页面

第一次做项目需要生成静态页面,网上很多大牛对将网页生成静态页面有很多异议.说一下我的看法. 不外乎有以下因素: 1.从页面加载时间来看:静态页面不需要与数据库建立连接,尤其是访问数据量较大的页面,这种页面大多要查很多结果集,因此建立连接次数就增多了,时间不可观,而静态页面则省去了这些时间. 2.从便于搜索引擎抓取的角度来讲:搜索引擎更喜欢静态的网页,静态网页与动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO排名更容易提高,一些大门户站页面大多都采用静态或伪静态网页来显示,更便于搜索引

利用PHP的ob函数实现生成静态化页面

之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的.今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下. 经他讲解后,才知道其实生成静态HTML页面很简单.PHP提供了专门的函数来实现. 以下整理出方法(实现生成html这应该只是其中一种方法): 通过php的ob缓存来实现 提高速度 1,通过php的ob缓存来实现 使用php的ob缓存实现页面静态化 修改php.ini配置文件 output_buffering=Off 1,缓存:

浅谈php生成静态页面

一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权限限制等,但是,对应一些我们经常频频使用的文件,比方说,开发的新闻发布系统,我们不希望很多用户都读取数据库才显示结果,这样一方面消耗了服务器的资源,另一方面占去了浏览者大量可贵的响应时间,所有,有了"静态页面话"的做法,当前很多网站都采用这种技术,一般都是由管理后台控制,或者生成html直

.net 生成 静态页面

.net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespace=System.IO %> <script runat="server"> protected override void OnInit (EventArgs e) { int id; try { id = int.Parse (Request.QueryString[

过滤器为JSP文件生成静态页面

用过滤器为JSP文件生成静态页面,这只是一个简单的实例,客户端浏览器第一次请求JSP页面时,服务器将生成对应的HTML文件,以后访问同一JSP文件,将转为访问生成的HTML文件.一.过滤器 package com.kenfor.lyb.toHtmlfilter; import java.io.*; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.s

PHP代码为什么不能直接保存HTML文件——&gt;PHP生成静态页面教程

1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件,这样反而会降低运行效率. 3.如果是需要PHP控制HTML代码的输出,比如需要PHP判断用户是否登陆,如果登陆则输出A,未登录则输出B.这就需要PHP来进行控制了.HTML不能实现这样的功能 PHP生成静态页面教程 ,一些基本的概念 一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可

PHP生成静态页面的方法

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法...."><LINKhref="http://www.php100.com//statics/st 在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化

比较详细PHP生成静态页面教程

一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的PHP解析器对 脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器.由此不难看出,在页面发送到浏览器后,P

PHP代码为什么不能直接保存HTML文件——&amp;gt;PHP生成静态页面教程

1.server会依据文件的后缀名去进行解析,假设是HTML文件则server不会进行语法解析.而是直接输出到浏览器. 2.假设一个页面中所有都是HTML代码而没有须要解析的PHP语法,则没有必要保存为PHP文件,这样反而会减少执行效率. 3.假设是须要PHP控制HTML代码的输出,比方须要PHP推断用户是否登陆,假设登陆则输出A,未登录则输出B.这就须要PHP来进行控制了.HTML不能实现这种功能 PHP生成静态页面教程 ,一些主要的概念 一,PHP脚本与动态页面. PHP脚本是一种serve