java 获取网页写入本地文件来解决让一个js事件

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

依赖
  1. <dependency><br>      <groupId>org.apache.httpcomponents</groupId><br>      <artifactId>httpmime</artifactId><br>      <version>4.5.2</version><br>    </dependency><br><br>    <br>    <dependency><br>      <groupId>org.apache.poi</groupId><br>      <artifactId>poi</artifactId><br>      <version>3.14</version><br>    </dependency>
复制代码
 

调用
  1. public static void main(String[] args) throws ClientProtocolException, URISyntaxException, IOException {<br>    String s =<br><br>    writeWordFile("d:/", "ab.doc", getHttpData(s));<br>    System.out.println("ok");<br>  }
复制代码
 

获取网页
  1. // 请求网路自考网数据<br>  public static String getHttpData(String url) throws URISyntaxException, ClientProtocolException, IOException {<br>    List<NameValuePair> nameValuePairList = Lists.newArrayList();<br>    nameValuePairList.add(new BasicNameValuePair("q", "x"));<br>    URI uri = new URIBuilder(url).addParameters(nameValuePairList).build();<br>    List<Header> headerList = Lists.newArrayList();<br>    headerList.add(new BasicHeader(HttpHeaders.ACCEPT_ENCODING, "gzip, deflate"));<br>    headerList.add(new BasicHeader(HttpHeaders.CONNECTION, "keep-alive"));<br>    HttpClient httpClient = HttpClients.custom().setDefaultHeaders(headerList).build();<br>    HttpUriRequest httpUriRequest = RequestBuilder.get().setUri(uri).build();<br>    HttpResponse httpResponse = httpClient.execute(httpUriRequest);<br>    HttpEntity entity = httpResponse.getEntity();<br>    String rawHTMLContent = EntityUtils.toString(entity);<br>    EntityUtils.consume(entity);<br>    return rawHTMLContent;<br>  }
复制代码
写入本地
  1. public static void writeWordFile(String path, String fileName, String content) {<br>    try {<br>      if (!"".equals(path)) {<br>        // 检查目录是否存在<br>        File fileDir = new File(path);<br>        if (fileDir.exists()) {<br>          byte b[] = content.getBytes();<br>          ByteArrayInputStream bais = new ByteArrayInputStream(b);<br>          POIFSFileSystem poifs = new POIFSFileSystem();<br>          DirectoryEntry directory = poifs.getRoot();<br>          DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);<br>          FileOutputStream ostream = new FileOutputStream(path + fileName);<br>          poifs.writeFilesystem(ostream);<br>          bais.close();<br>          ostream.close();<br>        }<br>      }<br>    } catch (IOException e) {<br>      e.printStackTrace();<br>    }<br>  }
复制代码
 
import
  1. <br>import java.io.ByteArrayInputStream;<br>import java.io.File;<br>import java.io.FileOutputStream;<br>import java.io.IOException;<br>import java.net.URI;<br>import java.net.URISyntaxException;<br>import java.util.Iterator;<br>import java.util.List;<br>import java.util.Map;<br>import java.util.Set;<br><br>import javax.servlet.http.HttpServletRequest;<br><br>import org.apache.http.Header;<br>import org.apache.http.HttpEntity;<br>import org.apache.http.HttpHeaders;<br>import org.apache.http.HttpResponse;<br>import org.apache.http.NameValuePair;<br>import org.apache.http.client.ClientProtocolException;<br>import org.apache.http.client.HttpClient;<br>import org.apache.http.client.methods.HttpUriRequest;<br>import org.apache.http.client.methods.RequestBuilder;<br>import org.apache.http.client.utils.URIBuilder;<br>import org.apache.http.impl.client.HttpClients;<br>import org.apache.http.message.BasicHeader;<br>import org.apache.http.message.BasicNameValuePair;<br>import org.apache.http.util.EntityUtils;<br>import org.apache.poi.poifs.filesystem.DirectoryEntry;<br>import org.apache.poi.poifs.filesystem.DocumentEntry;<br>import org.apache.poi.poifs.filesystem.POIFSFileSystem;<br>import org.assertj.core.util.Lists;
复制代码
window.addEventListener来解决让一个js事件执行多个函数

本篇文章来简单介绍一下JS作用域,以及BOM对象中的三个基础对象,分别是window对象、history对象和location对象。
一、JS作用域

1、函数嵌套作用域
  1. //函数作用域<br>    var place="Beijing";  //外部定义的变量<br>    function outer()<br>    {<br>        var place="Chengdu";  //outer函数下的重新定义<br>        function inner()<br>        {<br>            var place="Guangzhou";  //inner函数下的定义<br>            console.log(place);<br>        }<br>        inner();<br>    }<br>    // //调用outer函数,同时会执行inner函数<br>    outer();
复制代码
执行结果:
Guangzhou
2、函数多调用
  1. var name="路飞";<br>    function bar()<br>    {<br>        console.log(name);<br>    }<br>    function func()<br>    {<br>        var name="索隆";<br>        return bar;<br>    }<br>    var ret=func();  //将func函数执行的返回结果赋值给ret变量,即ret将代表bar函数<br>    ret();  //调用ret函数,即bar函数<br>    //又因为bar函数的作用域在外部,与它同级的name变量值为“路飞”
复制代码
执行结果:
路飞
二、window窗口

1、BOM简介
BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 JavaScript 有能力与浏览器“对话”。
2、window对象方法汇总

  • alert() 显示带有一段消息和一个确认按钮的警告框。
  1. window.alert("欢迎访问!");
复制代码


  • confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
  1. var ret= window.confirm("您确定要访问吗?");  //由用户做出选择,因此有一个返回值<br>    console.log(ret);
复制代码


  • prompt() 显示可提示用户输入的对话框。
  1. var ret= window.prompt("您的访问指令:");  //要去用户输入内容,在控制台显示<br>    console.log(ret);
复制代码


  • open() 打开一个新的浏览器窗口或查找一个已命名的窗口。(不常用)
  • close() 关闭浏览器窗口。(不常用)
  • setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
  • clearInterval() 取消由 setInterval() 设置的 timeout。
  1. setInterval(func,1000);  //表示每隔1000毫秒(1秒)执行一次函数func()<br>    function func()<br>    {<br>        console.log("Hello JavaScript!");<br>    }
复制代码

 
可以看到这个地方会一直有"Hello JavaScript!"的出现。
下面是由setInterval和clearInterval实现的动态时间更新小案例…

JS(

[/code]history2:
  1. <!DOCTYPE html><br><html lang="en"><br><head><br>    <meta charset="UTF-8"><br>    <title>Title</title><br></head><br><body><br><br><button onclick="history.back()">Back</button><br></body><br></html>
复制代码
这样就可以实现一个基本的前进和返回的效果(这个其实也不太常用)
四、location对象

1、简介
Location 对象包含有关当前 URL 的信息。
Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。
2、location下的方法

  • location.assign(URL)
  • location.reload()
  • location.replace(newURL)//注意与assign的区别
3、测试代码
  1. <!DOCTYPE html><br><html lang="en"><br><head><br>    <meta charset="UTF-8"><br>    <title>Title</title><br></head><br><body><br><button onclick="f()">点我!</button><br><br><br></body><br></html>
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表