java 获取网页写入本地文件来解决让一个js事件
依赖<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>
调用
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>}
获取网页
// 请求网路自考网数据<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>}写入本地
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
<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、函数嵌套作用域
//函数作用域<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、函数多调用
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() 显示带有一段消息和一个确认按钮的警告框。
window.alert("欢迎访问!");https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjA4LzAyMDk1ODIwXzYyZTg4NGJjYTA4MzY0MzcxOS5wbmc/eC1vc3MtcHJvY2Vzcz1pbWFnZS93YXRlcm1hcmssc2l6ZV8xNix0ZXh0X1FEVXhRMVJQNVkyYTVhNmksY29sb3JfRkZGRkZGLHRfMzAsZ19zZSx4XzEwLHlfMTAsc2hhZG93XzIwLHR5cGVfWm1GdVozcG9aVzVuYUdWcGRHaz0=
[*]confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
var ret= window.confirm("您确定要访问吗?");//由用户做出选择,因此有一个返回值<br> console.log(ret);https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjA4LzAyMDk1ODIwXzYyZTg4NGJjZGQzNmM2MzA3MS5wbmc/eC1vc3MtcHJvY2Vzcz1pbWFnZS93YXRlcm1hcmssc2l6ZV8xNix0ZXh0X1FEVXhRMVJQNVkyYTVhNmksY29sb3JfRkZGRkZGLHRfMzAsZ19zZSx4XzEwLHlfMTAsc2hhZG93XzIwLHR5cGVfWm1GdVozcG9aVzVuYUdWcGRHaz0=
[*]prompt() 显示可提示用户输入的对话框。
var ret= window.prompt("您的访问指令:");//要去用户输入内容,在控制台显示<br> console.log(ret);https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjA4LzAyMDk1ODIxXzYyZTg4NGJkMjIyNTI2NjU5My5wbmc/eC1vc3MtcHJvY2Vzcz1pbWFnZS93YXRlcm1hcmssc2l6ZV8xNix0ZXh0X1FEVXhRMVJQNVkyYTVhNmksY29sb3JfRkZGRkZGLHRfMzAsZ19zZSx4XzEwLHlfMTAsc2hhZG93XzIwLHR5cGVfWm1GdVozcG9aVzVuYUdWcGRHaz0=
[*]open() 打开一个新的浏览器窗口或查找一个已命名的窗口。(不常用)
[*]close() 关闭浏览器窗口。(不常用)
[*]setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
[*]clearInterval() 取消由 setInterval() 设置的 timeout。
setInterval(func,1000);//表示每隔1000毫秒(1秒)执行一次函数func()<br> function func()<br> {<br> console.log("Hello JavaScript!");<br> }https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjA4LzAyMDk1ODIxXzYyZTg4NGJkNTkyOWM2MDE1Ni5wbmc/eC1vc3MtcHJvY2Vzcz1pbWFnZS93YXRlcm1hcmssc2l6ZV8xNix0ZXh0X1FEVXhRMVJQNVkyYTVhNmksY29sb3JfRkZGRkZGLHRfMzAsZ19zZSx4XzEwLHlfMTAsc2hhZG93XzIwLHR5cGVfWm1GdVozcG9aVzVuYUdWcGRHaz0=
可以看到这个地方会一直有"Hello JavaScript!"的出现。
下面是由setInterval和clearInterval实现的动态时间更新小案例…
JS(
history2:
<!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、测试代码
<!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>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]