5.12

来源:互联网 发布:c语言编译器中文版 编辑:程序博客网 时间:2024/06/03 19:50

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中,表的底部的空白行表示可以在表中输入新的数据化




0 0
原创粉丝点击