今日线路图:服务器 →HttpWatch插件 →HttpURLConnection详解
今日回顾:1.服务器
1.1 作为硬件:是指计算能力强大,能为多数用户提供服务的计算机;作为软件:是指可以为发出请求的浏览器提供文档的程序。
1.2 常见的服务器软件:①Web服务器有Apache、Tomcat和微软的IIS服务器(Internet Information Services),PHP程序一般运行于Apache服务器上,也可运行在IIS服务器上;②Java编写的B/S程序都运行在Tomcat服务器上(Tomcat);③asp.net写的程序都运行在IIS服务器上。
2.HttpWatch插件
2.1 一款强大的网页数据分析工具,可集成在工具栏。它包括网页摘要、头信息发送/接受、字符查询、POST数据和目录管理等功能。
2.2 重点:熟悉头信息的设置方法setRequestProperty()。
3.HttpURLConnection详解
3.1 该类用于访问网络的完整写法:3.1.1 设置各种属性:①访问请求方式(默认为GET):httpConn.setRequestMethod("get或者post"); ②连接超时时间:httpConn.setConnectTimeout(填入毫秒数); ③配置头信息中的Content-Type(Windows操作系统中,默认URL地址是GBK编码,而我们的工作文件都是UTF-8编码,所以必须在参数传递时使用URLEncoder.encode()进行编码):httpConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); ④配置头信息中的Aaccept、Connection、User-Agent、Cache-Control、Accept-Encoding等属性;⑤setDoInput():设置服务器是否想httpconn对象中输入数据,默认为true(客户端从服务器端通过httpConn.getInputStream()取回数据);setDoOutput():设置服务器是否想httpconn对象中输出数据,默认为false(POST传参时,必须设置为true。为什么?GET传参时,用户信息写在头信息直接传递;而POST把传给服务器的数据放在HttpURLConnection对象里,这样经过httpconn.getOutputStream →OutputStream对象.write() → flush()后数据才从客户端传给服务器端);⑤调用connect()方法。Java官方API并没有解释清楚为什么要用此方法,也看不出此方法的作用。但必须注意,所有的属性设置要在此方法调用之前设置完毕。3.1.2 GET方式下载数据:实现网络访问文件,将获取到的数据存储在字节数组中。3.1.3 POST方式下载数据:实现网络访问文件,先通过POST方式提交数据,再返回相应的数据。
3.2 URLEncoder类:中文参数在传输的过程中,可能会发生乱码的情况(见3.1.1③)。而在服务器端会有URLDecoder.decode();自动解码。URL地址编码的方式非常简单,任何不是ASCII码字母、数字或者标点符号,都会被转换成字节形式,以%号加一个两位16进制数值的格式生成。如空格对应%20,+对应%2B。
今日记忆:1.GBK(双字节编码)里的汉字是2个字节,UTF-8(可变字节编码)里的汉字是3个字节。
今日随想:1.什么是多级缓存?2.Eclipse更迭过的版本有哪些,如indigo/kelper等?Eclipse用于Java SE和Java EE开发的分别?
今日冷知识:1.怎么可以不被盗号?想必大家都有QQ被盗的血泪史(俺一次没被盗过,小电影什么的还是少看一些为妙,同时掌握高超的ed2k搜索技巧是生存技能)。盗号木马记录的是你输入密码的顺序,只要你特殊地手动输入密码,就算你电脑有木马,也不要紧。很简单。比如你的密码是123456,你输入的时候可以先输入23456,然后光标移到最前面输入1,木马记录下来的是234561,而你的密码是123456,防范成功。盗号份子们统统滚粗。
今日最佳:1.程序员如何浪漫一点?用编码写情书。比如,我爱你,在UTF-8里的编码为我爱你写起来不够工整,而用URLEncoder写那是极好的,也就变成了%E6%88%91%E7%88%B1%E4%BD%A0。嗯,就是这样,剩下的大家自己去参详。
2.当一群人堵在你前进方向上的时候,你不妨在心中大喊一声flush();