文档章节

Java 网络编程总结

bithup
 bithup
发布于 2017/12/04 11:41
字数 709
阅读 21
收藏 0

针对网络通信的不同层次,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而非空字符串。

© 著作权归作者所有

上一篇: ajax跨域访问笔记
下一篇: Java动态代理
bithup
粉丝 8
博文 101
码字总数 82172
作品 0
朝阳
程序员
私信 提问
成都 某知名游戏平台背景游戏公司 招聘 java主程

Java后端主程(1名) 15-20W 作息时间:9:00-18:00能接受加班 职责描述: 负责网页游戏的服务器端架构和开发工作。 职位要求: 1、精通Java技术(J2SE的数据结构,多线程,事件机制),具有扎实...

Seliya
2012/04/16
2.6K
15
什么是Java语言?java语言简介

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的W...

阿秀a
2010/10/19
0
0
JVM内存结构 VS Java内存模型 VS Java对象模型

Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和...

Java架构
2018/07/11
0
0
BAT等大厂Android面试书单和知识点清单

java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,所以比较重要,下面我介绍的书籍内容是由浅到深。 1.Thinking in java:这本书被称为Java的三大圣经之一,虽然书比...

android自学
2018/07/25
0
0
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【jQuery基础学习】05 jQuery与Ajax以及序列化

本文转载于:专业的前端网站➭【jQuery基础学习】05 jQuery与Ajax以及序列化 好吧,这章不像上章那么水了,总是炒剩饭也不好。 关于AJAX 所谓Ajax,全名Asynchronous JavaScript and XML。(也...

前端老手
30分钟前
10
0
CVE-2019-14287(Linux sudo 漏洞)分析

作者:lu4nx@知道创宇404积极防御实验室 作者博客:《CVE-2019-14287(Linux sudo 漏洞)分析》 原文链接:https://paper.seebug.org/1057/ 近日 sudo 被爆光一个漏洞,非授权的特权用户可以...

极客君
31分钟前
7
0
关于分布式,你需要知道的真相

目录 一、分布式锁 数据库的唯一索引 Redis 的 SETNX 指令 Redis 的 RedLock 算法 Zookeeper 的有序节点 二、分布式事务 2PC 本地消息表 三、CAP 一致性 可用性 分区容忍性 权衡 四、BASE 基...

李红欧巴
31分钟前
8
0
读书笔记:深入理解ES6 (附录B)

附录B:了解ES7(2016)   ES6经历了4年的发展,之后TC-39决定将发布周期转换为每年一版,以确保新语言特性能够更快地发展。   ES6中添加了三个语法特性,下面一一来讲。 第1节 指数运算...

张森ZS
37分钟前
14
0
计算机公开课推荐 2019.8

欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 编程 哈佛 CS50:计算机科学导论 视频 MIT 6.00.1x:计算机科...

ApacheCN_飞龙
37分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部