JAVA
网络——>可以互相通信的计算机集合
分为LAN(区域网)多个LAN组成——> WAN(广域网)
应用层协议(HTTP; FTP; TELNET)——>使用传输层协议(TCP; UDP)——>网络层协议(IP)
HTTP(超文本传输协议)
客户端——>建立链接——>发送HTTP请求——>启动事务
HTTP请求:——>方法——URI——协议/版本 (其中URI指定互联网资源——相对于服务器的根目录)
——>请求头
——>实体主体 (例子)——>lastName=Franks&firstName=Michael
POST/examples/default.jsp HTTP/1.1 其中 POST 为请求方法,HTTP/1.1 为协议/版本, examples/default.jsp 为URI
HTTP/1.1中支持的七种请求方法:GET POST HEAD OPTIONS PUT DELETE TRACE
其中 GET 和 POST 最为常见
HTTP响应:——>协议——状态码——描述
——>响应头
——>实体主体
java.net.URL
URL 为互联网资源的唯一地址
http://www.yahoo.com:80/en/index.html
http(协议) www.yahoo.com(主机) :80(端口号) /en/index.html(路径)
HTTP并不是URL中的唯一的协议:
file://localhost/C:/data/MyPhoto.jpg 该URL指本机中的一个jpeg文件
在JAVA 中,URL 用 java.net.URL对象来表示
通过调用一个URL类的构造器来构造URL
public URL(java.lang.String spec)
public URL(java.lang.String protocol, java.lang.String host, java.lang.String file)
public URL(java.lang.String protocol, java.lang.String host, int port, java.lang.String file)
public URL(URL context, String spec)
URL myUrl = new URL(http://www.brainysoftware.com/);
解析URL
public java.lang.String geiFile()
{ }——>getHost getPath getProtocol getQuery
public int getPort()
import java.net.URL;
public class URLTest {
public static void main(String[] args) throws Exception {
URL url = new URL(
"http://www.yahoo.com:80/en/index.html?name=john#first");
System.out.println("Protocol:" + url.getProtocol());
System.out.println("port:" + url.getPort());
System.out.println("host:" + url.getHost());
System.out.println("path:" + url.getPath());
System.out.println("file:" + url.getFile());
System.out.println("query:" + url.getQuery());
System.out.println("ref:" + url.getRef());
}
}
编译后运行:
F:\gz\JAVA\wl>java URLTest
Protocol:http
port:80
host:www.yahoo.com
path:/en/index.html
file:/en/index.html?name=john
query:name=john
ref:first
使用URL 类的 openStream方法来读取Web资源
public final java.io.InputStream openStream()
throws java.io.IOException
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class URLTest1 {
public static void main(String[] args) {
try {
URL url = new URL("http://www.google.com/");
InputStream inputStream = url.openStream();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(inputStream));
String line = bufferedReader.readLine();
while (line!= null) {
System.out.println(line);
line = bufferedReader.readLine();
}
bufferedReader.close();
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
通过以上程序输出 http://www.google.com 的内容
F:\gz\JAVA\wl>java URLTest1
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown
Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Sou
rce)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Sour
ce)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown S
ource)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So
urce)
at java.net.URL.openStream(Unknown Source)
at URLTest1.main(URLTest1.java:11)
java.net.URLConnection
URLConnection——>到远程机器的连接
——>对远程几期资源进行读取和写入
——>该类的两个boolean域doInput 和 doOutput
该类没有公共构造器,且无法使用new 关键字构建URLConnection
通过在URL对象中调用 openConnection方法来获得URLConnection
public void setDoInput(boolean value)
public void setDoOutput(boolean value)
public boolean getDoInput()
public boolean getDoOutput()
要想使用URLConnection对象进行读取,就要调用它的getInputStream方法,该方法返回一个java.io.InputStream对象
public java.lang.String getHeaderField(int n)
返回第n个响应头的值
public java,lang.String getHeaderField(java.lang.String headerName)
返回指定响应头
public long getHeaderFieldDate(java.lang.String headerName, long defaule)
返回作为日期的指定域的值,如果没有,则返回default
public java.util.Map getHeaderFields()
返回包含响应头的java.util.Map
SQL
Structured Query Language(结构化查询语言)sequel
从关系数据库中获取信息的声明式语言
关系数据库是一种用来在计算机中组织数据的方法
SQL的两种不同实现:Orcale 与 Access
在关系数据库中
所有的数据是存储在表中的
表是拥有列(column) 和行(row)的一个二维结构
列可以称为字段(field) 行可以称为记录(record)
表的每一行都表示一个对象、事件或关系
每一列表示一类信息
单元格是表的最小部分(一个单元格只包含单个数据,单个信息单元)
使用主键列表示每一个行
——>主键列不可以包含一个null
——>每一行都必须有一个不同于表中其他每个行的特性
Orcale 与 Access 的相似处与不同处
相似:①列名显示在列的顶端 不同:① Orcale显示成行的字符数据,Access使用图形化技术在栅格中显示数据
②列标题中的列名可缩写 ②Orcale中全部大写
③文本数据向左对齐 ③Orcale可以分多行显示标题
④数字向右对齐 ④日期格式
⑤包含日期的列通常只显示日期部分 ⑤Orcale中日期向左对齐
⑥显示货币数量的列作为数字存储的 ⑥null ⑦位置指针Access表包含指针
⑧添加数据的能力,Access中,表的底部的空白行表示可以在表中输入新的数据化