您的位置:首页 > 理论基础 > 计算机网络

Java 网络编程总结

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

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

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

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

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

4.Socket编程

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

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

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

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

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而非空字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: