Java 网络编程总结

针对网络通讯的不一样层次,Java提供了不一样的API,其提供的网络功能有四大类:InetAddress:用于标识网络上的硬件资源,主要是IP地址;URL:统一资源定位符,经过URL能够直接读取或写入网络上的数据;Sockets:使用TCP协议实现的网络通讯Socket相关的类;Datagram:使用UDP协议,将数据保存在用户数据报中,经过网络进行通讯。编程

URL处理,给定一个URL,分析URL的结构,经过URL获取网络数据浏览器

1.URL类,使用一个字符串url初始化,getXXX()返回域名、端口、参数等;openConnection()返回一个URLConnection对象tomcat

2.URLConnection类:表明与目标的链接对象,getInputStream()返回InputStream对象,其中包含从网络主机获取到的数据服务器

3.InetAddress类:表明IP地址,静态方法getLocalHost(),getByName()获取IP网络

4.Socket编程多线程

5.Java.net.Socket类:表明一个套接字socket

6.Java.net.ServerSocket:服务器端套接字监听类post

7.Socket是TCP/IP协议的编程接口,网络上具备惟一标识的IP地址和端口号组合在一块儿构成惟一的套接字编码

8.使用socket和多线程实现一个静态网页服务器,功能有浏览静态网页,上传下载文件。Cookie保存。
须要解决的问题:HTTP协议的get和post方法如何分别处理。HTTP协议有哪些选项。HTTP协议的状态码。服务器配置文件XML文件的解析,saxurl

9.Tomcat7源码解读:http://blog.csdn.net/c929833623lvcha/article/details/44677569

10.阅读tomcat源码须要哪些知识:socket、如何在TCP上实现HTTP、servlet规范、类加载器、XML解析

 

 

Java中使用URL类请求网络接口

URL不具有浏览器的urlencode功能,因此请求的路径中不能使用特殊符号

例如:请求路径中有日期参数2017-12-04 12:00

若是直接将参数添加到请求路径中,可能会致使请求错误

缘由是URL类中的请求方法不会对日期中的空格转换成  %20

解决问题的办法有

使用URLEncode类转换,或者手动替换请求路径中的特殊字符,例如将空格替换为%20

URLEncode使用建议:

先拼接完整URL,而后再对整个URL进行编码;

也能够对单个的参数值进行编码,

可是不要将 例如:http://192.168.3.154:11088/demo.htm?abc=123中问号后面的部分进行单独编码,而后再与前面部分拼接,这样得不到正确的URL,由于?和&都会被看成特殊字符进行处理。

 

使用request.getParameter()方法获取参数时,若是请求中没有对应的参数,这获得的结果是null而非空字符串。

相关文章
相关标签/搜索