HttpClient4.5实现页面静态化

原创 2016年08月28日 23:17:09

前两天学习HttpClient,大概理解了HttpClient的作用,后来得知httpClient也能做页面静态化,就在在百度上搜关于httpClient如何实现页面静态化,但搜到的结果全部都是很久以前的httpClient版本做的页面静态化,于是我便根据自己的理解,用HttpClient 4.5 做了一个页面静态化的例子,今天就在这里跟大家分享一下

httpClient实现页面静态化,需要用到它的get方法来获取到网页内的数据,再将页进行静态化

下面是httpClient的get方法的一个例子

 /**
  * @author 
  * @date 2016年8月18日 下午3:26:56
  * @return_type void
  * 发送get请求,读取网页内数据
  */
  @Test
  public void get(){
         CloseableHttpClient httpClient=HttpClients.createDefault();
        // 创建httpget.    
        HttpGet httpget = new HttpGet("http://localhost:8080/hotel/reserve/reserveList.action");  
        
        System.out.println("executing request " + httpget.getURI());  
        
        // 执行get请求.    
        HttpResponse response = null;
        
  try {
   response = httpClient.execute(httpget);
  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }  
  try {
          // 获取响应实体    
   
            HttpEntity entity = response.getEntity();  
            System.out.println("--------------------------------------");  
            
            // 打印响应状态    
            System.out.println(response.getStatusLine());  
            System.out.println("--------------------------------------");
            
            if (entity != null) {  
               
                // 打印响应内容    
    System.out.println("Response content: " + EntityUtils.toString(entity,"utf-8"));
            }
  } catch (org.apache.http.ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
  // TODO Auto-generated catch block
   e.printStackTrace();
  }               
  }


了解了get方法之后,我们就可以利用get方法来实现httpClient页面静态化了

/**
 * @author wzg
 * @date 2016年8月22日 下午5:16:48
  * @project first
  * @package com.wzg.util
  */
public class Demo {
 
  public boolean test(String url,String htmlPage){
  
  //创建默认的httpClient实例
  CloseableHttpClient httpClient=HttpClients.createDefault();
  
  // 创建httpget.    
  HttpGet get = new HttpGet(url);
  
  try {
   //执行get请求
   CloseableHttpResponse response = httpClient.execute(get);
   
   //获取响应实体    
   HttpEntity entity = response.getEntity();
      
    //定义BufferedReader输入流来读取URL的响应 
   BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
   
   String pageContent="";
   
   //逐行读取数据
   while(true){
    String line = br.readLine();
    if(line == null){
     break;
    }else{
     pageContent+=line;
     pageContent+="\n";
    }
   }
   
   //创建字符输出流
   FileWriter writer = new FileWriter(htmlPage);
   
    PrintWriter fout = new PrintWriter(writer);
   
   fout.print(pageContent);
   fout.close();
  } catch (IOException e) {
      System.out.println("IOException");
             return false;
  }
  
  return true;
 }
  public static void main(String[] args) {
  Demo demo = new Demo();
  demo.test("http://localhost:8080/hotel/admin/out.action", "D:/a.html");
  System.out.println("已生成静态页面");
  }
}


以上就是利用httpClient的get方法来实现页面静态化,是不是很简单呢,大家都动手试下吧

HttpClient4.5详解

1.HttpClient简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 H...
  • Destiny_bobo
  • Destiny_bobo
  • 2016年09月20日 08:52
  • 912

HttpClient4.5.1简单封装

摘要: HttpClient的简单封装,主要是方便自己在开发小工具的时候是使用。 1、maven依赖: dependency> groupId>org.apache.httpcompon...
  • z69183787
  • z69183787
  • 2016年10月25日 17:04
  • 1465

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量。像12306需要应付上亿人同时来抢票,淘宝双十一……所以,如何提高网站的性能,是做网站都需要考虑的。           首...
  • liujiahan629629
  • liujiahan629629
  • 2015年05月24日 22:13
  • 6185

JavaWeb之Filter讲解和实现页面静态化和更新页面(下)

JavaWeb之Filter讲解和实现页面静态化和更新页面(下) 静态化页面的生成 生成静态化页面还是使用的过滤器和装饰者模式,来实现。分析: 这个时候,就要想到response的getWri...
  • qq455276333
  • qq455276333
  • 2013年08月23日 19:18
  • 2296

页面静态化技术的实现

页面静态化技术的实现以前自己开发的作业提交系统,存在同学们首页打开缓慢的情况。今天思考了下,一直知道原因,最主要的原因就是每次打开首页,都需要去数据库查询数据,这会给用户很不好的体验。 jsp动态解析...
  • admintest1
  • admintest1
  • 2016年08月22日 10:07
  • 273

java 做页面静态化

JSP的静态化   什么是静态化?静态化就是将动态的jsp转换为静态的html 为什么要静态化?提高性能加快访问速度,静态化的页面html不需要访问数据库等操作所以要比动态的jsp...
  • u013568834
  • u013568834
  • 2015年01月27日 23:09
  • 5200

php页面静态化实现思路

php页面静态化,是把那些内容不常变化的页面静态化,而不通过动态程从数据库或者缓存中读出,以此来增加响应速度和减轻服务器压力。这里的要点是对不常变化的内容做静态化,如:新闻,博客等。而经常变化的内容,...
  • jetxt
  • jetxt
  • 2015年03月23日 17:17
  • 4645

freemarker实现页面的静态化

一:FreeMarker的作用 页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成 1、 MVC框架中的Vie...
  • zhangrcxhqy
  • zhangrcxhqy
  • 2016年03月09日 17:00
  • 674

Java web----页面静态化

1 说明 静态页面本身就比动态页面快很多倍,而且动态页面总是要去数据库查询,这会更加降低速度! 页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面...
  • bluzelee2011
  • bluzelee2011
  • 2015年01月17日 13:24
  • 1457

如何处理java高并发问题---之页面静态化

解决java中的高并发问题可以从硬件软件等方面入手,硬件如:服务器;软件如:系统缓存、页面静态化等。这里我写的是页面静态化的简单小例子。之所以将这个小例子记录下来是因为之前对页面静态化有误解,原以为静...
  • u012255097
  • u012255097
  • 2017年01月19日 17:06
  • 2416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HttpClient4.5实现页面静态化
举报原因:
原因补充:

(最多只允许输入30个字)