[Java Web] 壹 、Web开发初识——一大堆历史和技艺名词

 点击下图注册按钮,出现挂号用户面板,把手提式有线电话机号和判断一致的密码添加到MySQL数据库中

 

图片 1

LZ前言

行事原理:

LZ近日意识网络当成个神奇的东西,在此以前做的诙谐的只能自娱自乐(大概说形孤影只),今后只要发三个帖子,写1个博客,非常快能引来一大群小伙伴的围观(有时候还是能够遇见多少个大腕给个战略的点拨)…LZ本来是搞硬件的:从CPU的制作(VHDL)、数电、模电再到计算机组成原理、汇编、接口技术,底层的东西到底生搬硬套地懂了点皮毛,正好大学一年级的时候又打听一些总括机的编制程序知识(当时先是次用C++Build写出来个Hollo
World这一个喜欢呀~后来又从win32学到MFC再到C#,嘿嘿,基本上依旧皮毛吧~没做过太大的事物,就写多少个老掉牙的小游戏~),所以有空就做一些软硬结合的小制作(嘿嘿,纯属没女朋友的宅一族的自娱自乐)…就算准大三呐,依旧改不了贪玩的心,方今看实验室里的学长、平常的伙伴、大牌们玩web格外了不起上,于是,嘿嘿….为了一个杰出的博客的主页,为了能在不懂的小伙伴前面吹一下牛皮,更为了多学点新东西….在此之前天起始插手Web!!!啊~WEB3个神奇的天地,笔者来了~

与单机的软件分化,这几个聊天的登录框不能把注册音信一贯添加进数据库

PS1:下面是作者从网上找了一部分小材质结合一下的,请大神勿喷>_<“,然则依旧很喜悦大家给些好的建议和透亮滴~

而是应该把注册音讯发送到服务器

PS2:相似初学者(像本身)一听到关于Web的一大堆技术名词就会吓得漫不经心,所以首先篇,笔者从网上找了有的有关Web的牵线的素材,整合删减一下,给大家初学者3个大体的了然呢~(大神能够直接跳过呀~)

当服务器收到到注册消息后,在服务端把注册消息添加进数据库

 


1、Web起源:

 

Web是World Wide Web的简称,普通话称之为万维网,是用于发表、浏览、查询音讯的网络新闻服务系统,由许多分布在区别地区内的Web服务器有机地组成。 
Web的不断完善都以依照各样Web技术的不断向上,Web的接纳框架结构是由英国人Tim Berners-Lee在一九八六年提议的,而它的前身是一九八零年Tim Berners-Lee负责的Enquire(Enquire Within Upon 伊芙rything的简称)项目。1986年一月第②个Web服务器nxoc01.cern.ch起首运转,由提姆 Berners-Lee编写的图形化Web浏览器第1次面世在人们前边。1994年,CE纳瓦拉N(European Particle Physics Laboratory)正式布告了Web技术标准。方今,与Web相关的种种技术标准都由著名的W3C组织(World Wide Web Consortium)管护。(>_<“历史神马的略微烦呀~)

第①,做连接数据库的备选

 

连日来数据库供给3个连接数据库的驱动包
—— mysql-connector-java-5.1.7-bin.jar

② 、Web技术精妙之处:

假定忘记倒入连接mysql数据库的包,会冒出java.lang.ClassNotFoundException:
com.mysql.jdbc.Driver难点

用超文本技术(HTML)达成新闻与消息的连接;用联合营源一定技术(ULANDL)完成满世界消息的精分明位;用新的应用层协议(HTTP)达成分布式的音讯共享。(那句话精辟!)

 

 

下载地址:链接: https://pan.baidu.com/s/1geBRqqn 密码: 8jxm

叁 、Web技术涉及的技术:

 

Web是一种典型的分布式应用架构。Web应用中的每叁回新闻置换都要提到到客户端和服务端五个规模。因而,Web开发技术大体上也足以被分为客户端技术和服务端技术两大类。

下一场,把连接数据库的言辞做成工具类,方便调用

 

DBUtil类,负责连接已经存在的数据库sw_database(用DBUtil.getConn()方法)

3.一 、客户端技术:

      负责连接数据库后关门各个财富(用DBUtil.closeAll()方法)

3.1.1、HTML语言:

package com.swift.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {

    public static Connection getConn() {
        Connection conn=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            String url="jdbc:mysql://localhost:3306/sw_database";
            String user="root";
            String password="root";
            conn=DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static void closeAll(Connection conn,PreparedStatement ps,ResultSet rs) {

        if(conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ps!=null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Web客户端的严重性职分是展现消息内容,HTML语言是消息展现的最可行载体之一。它是一种超文本语言。(以往大家还要精心学习~)

 

 

接着,须求把用户注册的新闻添加进数据库的sw_user表中

3.1.② 、从静态消息到动态新闻:

之所以,再建二个工具类DBAdd,负责添加用户注册消息到表中(用DBAdd.add(User
user)方法)

最初的HTML语言只可以在浏览器中显示静态的文书或图像新闻,随后由静态技术向动态技术日趋转移。Web出现后,GIF第3次为HTML页面引入了旺盛元素。1993年Java语言的问世带来了更大的革命。Java语言天赋就全数的平台非亲非故的特点,令人们一下子找到了在浏览器中开发动态应用的近便的小路。CSS和DHTML技术确实让HTML页面又酷又炫、动感无限起来。一九九九年,Microsoft公布了IE 4.0,并将动态HTML标记、CSS和动态指标模型发展成了一套完整、实用、高效的客户端开发技术体系,Microsoft称其为DHTML。同样是贯彻HTML页面包车型大巴动态效果,DHTML技术无需运行Java虚拟机或其余脚本环境,能够在浏览器的帮助下,得到更好的显现效果和更高的执行效能。
为了在HTML页面中落实音频、录像等更是复杂的多媒体应用,又引入了对Quick提姆e插件的辅助,插件那种开发方式也火速盛行了浏览器的世界。还有90年份先前时代刚刚出版的COM和ActiveX也不行业作风靡。Real player插件、Microsoft本人的媒体播发插件Media Player也被预装到了种种Windows版本之中。随后Flash插件的平地而起。(>_<“哈哈,有点晕了吧!)

 

 

package com.swift.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DBAdd {

    public static void add(User user) {

        String phone = user.getUsername();
        String password = user.getPassword();

        Connection conn = DBUtil.getConn();
        PreparedStatement ps=null;
        try {
            ps = conn.prepareStatement("insert into sw_user(username,password) values(?,?)");
            ps.setString(1, phone);
            ps.setString(2, password);
            int count = ps.executeUpdate();
            if (count == 1) {
                System.out.println("用户添加成功");
            } else {
                System.out.println("用户添加失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DBUtil.closeAll(conn, ps, null);
        }

    }

}

3.贰 、服务端技术:

User类代码如下:负责用户信息的包装

3.2.① 、Web服务端发展历史:

package com.swift.jdbc;

public class User {

    private int id;
    private String username;
    private String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }
    public User() {
        super();
    }
    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
    }

}

与客户端技术从静态向动态的形成历程看似,Web服务端的开发技术也是由静态向动态慢慢进化、完善起来的。

 

  • 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将积存在服务器上的HTML文件再次回到给浏览器。
  • 率先种真正使服务器能根据运转时的具体情状,动态生成HTML页面包车型地铁技巧是红得发紫的CGI技术。CGI技术允许服务端的应用程序依照客户端的伸手,动态生成HTML页面,那使客户端和服务端的动态新闻沟通到为了说不定。
    早期的CGI程序大多是编写翻译后的可执行程序,其编程语言能够是C、C++、帕斯Carl等任何通用的顺序设计语言。为了简化CGI程序的修改、编写翻译和公布进程,人们起头搜寻用脚本语言完毕CGI应用的有用措施。
  • 一九九一年,发明了专用于Web服务端编制程序的PHP语言。PHP语言将HTML代码和PHP指令合成为完全的服务端动态页面,能够用一种特别便捷、连忙的不二法门实现动态Web功用。
  • 壹玖玖陆年,Microsoft在其Web服务器IIS 3.0中引入了ASP技术。ASP使用的脚本语言是我们耳熟能详的VB Script和JavaScript。
  • 一九九八年,JSP技术诞生。
  • 随着,XML语言及连锁技术又改成主流。XML语言对音讯的格式和表达方法做了最大程度的标准,应用软件可以依照联合的章程处理全部XML新闻。那样一来,音讯在总体Web世界里的共享和置换就有了技能上的涵养。HTML语言关切的是新闻的表现方式,而XML语言关注的是消息本人的格式和数量内容。 

随即,在LoginDialog登陆窗口“注册用户”按钮添加监听,当点击按钮则把消息发送给服务端

3.叁 、Web技术升高八个级次:

音讯发给服务端,须求建立与服务端的连接,及倒闭窗口断开连接

Web技术的进化最主要分为三个等级,大体总括为静态技术等级、动态技术等级和Web2.0新时代。

总是后各自发送电话号码和认证好的密码

PS:大家所谓的动、静态是依照Web网页所运用的技能来划分的,动态网页不是指装有动态效果的网页,它是指利用动态网站技术转移的网页。

切切实实代码如下:

3.3.一 、Web技术进步的首先等级——静态技术等级

package com.swift.frame;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ConnectException;
import java.net.Socket;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.TitledBorder;

import com.swift.jdbc.DBAdd;
import com.swift.jdbc.DBUtil;
import com.swift.jdbc.User;
import com.swift.util.Center;

public class LoginDialog extends JDialog {

    private JPasswordField passwordField_2;
    private JPasswordField passwordField_1;
    private JTextField textField_2;
    private JTextField textField;

    Socket s;
    DataOutputStream dos;
    DataInputStream dis;

    public static void main(String args[]) {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JDialog.setDefaultLookAndFeelDecorated(true);

        try {
            UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        } catch (InstantiationException e1) {
            e1.printStackTrace();
        } catch (IllegalAccessException e1) {
            e1.printStackTrace();
        } catch (UnsupportedLookAndFeelException e1) {
            e1.printStackTrace();
        }

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    LoginDialog dialog = new LoginDialog();
                    dialog.addWindowListener(new WindowAdapter() {
                        public void windowClosing(WindowEvent e) {
                            System.exit(0);
                        }
                    });
                    dialog.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public LoginDialog() {
        super();
        setResizable(false);
        setTitle("在线聊天登录框");
        getContentPane().setLayout(null);
        setBounds(100, 100, 427, 301);// 注册时高度为578,不注册是301

        // 设置窗口居中
        this.setLocation(Center.getPoint(this.getSize()));

        final JButton button_1 = new JButton();
        button_1.setText("登录");
        button_1.setBounds(230, 222, 106, 36);
        getContentPane().add(button_1);

        final JTextField textField_1 = new JTextField();
        textField_1.setBounds(148, 90, 192, 42);
        getContentPane().add(textField_1);

        final JLabel label = new JLabel();
        label.setText("帐    号");
        label.setBounds(76, 102, 66, 18);
        getContentPane().add(label);

        final JLabel label_1 = new JLabel();
        label_1.setText("密    码");
        label_1.setBounds(76, 167, 66, 18);
        getContentPane().add(label_1);

        final JPasswordField passwordField = new JPasswordField();
        passwordField.setBounds(148, 155, 192, 42);
        getContentPane().add(passwordField);

        final JButton button = new JButton();
        button.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent e) {
                if (LoginDialog.this.getHeight() == 301) {
                    LoginDialog.this.setSize(427, 578);
                } else {
                    LoginDialog.this.setSize(427, 301);
                }
                // 设置窗口不断居中
                LoginDialog.this.setLocation(Center.getPoint(LoginDialog.this.getSize()));
            }
        });
        button.setText("注册");
        button.setBounds(76, 222, 106, 36);
        getContentPane().add(button);

        final JPanel panel = new JPanel();
        panel.setLayout(null);
        panel.setBorder(new TitledBorder(null, "注册用户", TitledBorder.DEFAULT_JUSTIFICATION,
                TitledBorder.DEFAULT_POSITION, null, null));
        panel.setBounds(10, 278, 401, 226);
        getContentPane().add(panel);

        final JLabel label_2 = new JLabel();
        label_2.setBounds(44, 41, 65, 18);
        label_2.setText("手机号:");
        panel.add(label_2);

        textField = new JTextField();
        textField.setBounds(115, 35, 225, 30);
        panel.add(textField);

        final JButton button_2 = new JButton();
        button_2.setText("发送验证");
        button_2.setBounds(243, 75, 97, 30);
        panel.add(button_2);

        textField_2 = new JTextField();
        textField_2.setBounds(115, 104, 95, 30);
        panel.add(textField_2);

        final JLabel label_3 = new JLabel();
        label_3.setText("验证码:");
        label_3.setBounds(44, 110, 65, 18);
        panel.add(label_3);

        passwordField_1 = new JPasswordField();
        passwordField_1.setBounds(115, 143, 231, 30);
        panel.add(passwordField_1);

        passwordField_2 = new JPasswordField();
        passwordField_2.setBounds(115, 175, 231, 30);
        panel.add(passwordField_2);

        final JLabel label_4 = new JLabel();
        label_4.setText("密        码:");
        label_4.setBounds(44, 149, 65, 18);
        panel.add(label_4);

        final JLabel label_5 = new JLabel();
        label_5.setText("验证密码:");
        label_5.setBounds(44, 181, 65, 18);
        panel.add(label_5);

        final JButton button_3 = new JButton();
        button_3.setBounds(47, 510, 97, 30);
        getContentPane().add(button_3);
        button_3.setText("放弃");

        final JButton button_4 = new JButton();
        button_4.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent e) {

                String phone = textField.getText();
                String password = null;
                String str1=new String(passwordField_1.getPassword()).trim();
                String str2=new String(passwordField_2.getPassword()).trim();

                if (str1.equals(str2)) {
                    password = new String(passwordField_2.getPassword()).trim();
                } else {
                    System.out.println("输入密码不一致...");
                    System.exit(0);
                }
                try {
                    dos.writeUTF(phone);
                    dos.writeUTF(password);
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        });

        button_4.setBounds(262, 510, 97, 30);
        getContentPane().add(button_4);
        button_4.setText("注册用户");

        connect();
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosed(WindowEvent e) {
                disconnect();
            }
        });
    }

    public void connect() {
        try {
            s = new Socket("127.0.0.1", 8888);
            System.out.println("一个客户端登陆中....!");
            dos = new DataOutputStream(s.getOutputStream());
            dis = new DataInputStream(s.getInputStream());

        } catch (ConnectException e) {
            System.out.println("服务端异常.........");
            System.out.println("请确认服务端是否开启.........");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void disconnect() {
        try {
            if (dos != null)
                dos.close();
            if (s != null)
                s.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}

本阶段的Web主假设静态的Web页面。在这一个阶段,HTML语言便是Web向用户显示消息的最有效的载体。HTML的完备是超文本标注语言(Hyper Text 马克up Language),它经过提供超文本格式的音讯,在客户端的用户机上展现出完全的页面。Web服务器使用HTTP(Hyper Text Transport Protocol)超文本传输协议将HTML文书档案从Web服务器传输到用户的Web浏览器上。在本阶段,由于受HTML语言和旧式浏览器的钳制,Web页面只含有了静态的文书和图像消息,限制了能源共享,那个情景更为不能够满意人们对新闻多种性和及时性的供给。而这一等级的Web服务器基本上只是1个HTTP的服务器,它承担接收客户端浏览器的拜会请求,建立连接,响应用户的伸手,查找所需的静态的Web页面,再回去到客户端。

服务端要经受客户端登陆窗发来的手提式有线话机号码和密码

图片 2

下一场将新闻打包成User,通过DBAdd.add(user)添加进数据库

[图为:静态Web处理流程]

树立叁个LoginServer类,负责接收信息和添加进数据库

 

具体代码如下:

3.3.贰 、Web技术发展的第贰阶段——动态技术等级

package com.swift;


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;

import com.swift.jdbc.DBAdd;
import com.swift.jdbc.User;

public class LoginServer {

    boolean started = false;
    ServerSocket ss = null;
    Socket s = null;

    public static void main(String[] args) {
        new LoginServer().fun();
    }

    private void fun() {
        try {
            ss = new ServerSocket(8888);
            started = true;
        } catch (BindException e) {
            System.out.println("端口使用中......");
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        try {
            while (started) {
                s = ss.accept();
                System.out.println("a client connected success");
                Client c = new Client(s);
                new Thread(c).start();
            }
        } catch (EOFException e) {
            System.out.println("client has closed.");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                ss.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    class Client implements Runnable {

        private Socket s;
        private DataInputStream dis;
        private DataOutputStream dos;
        private boolean connected = false;

        public Client(Socket s) {
            this.s = s;
            try {
                this.dis = new DataInputStream(s.getInputStream());
                this.dos = new DataOutputStream(s.getOutputStream());
                connected = true;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        @Override
        public void run() {
            try {//注意:要包括while循环,如果try在while循环里,则出现socket closed异常
                while (connected) {
                    String phone = dis.readUTF();
                    String password = dis.readUTF();

                    System.out.println(phone);
                    System.out.println(password);

                    User user=new User(phone,password);
                    DBAdd.add(user);
                }
            } catch(SocketException e) {
                System.out.println("一个登陆窗已经关闭....");
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                  if (s != null) {
                      try {
                          s.close();
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
                if (dis != null) {
                    try {
                        dis.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(dos!=null) {
                    try {
                        dos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

        }

    }
}

在Web辈出的同时,能储存、突显二维动画的GIF图像格式也已发展成熟,为HTML引入动态成分提供了原则。此后,为了能更好地克服静态页面包车型地铁欠缺,人们将价值观单机环境下的编制程序技术引入互联互连网与Web技术相结合,从而形成新的网络编制程序技术。一九九五年Java语言的出版给Web的开拓进取拉动更大的变革,它为人人提供了一条在浏览器中支出应用的捷径。一九九八年,著名的Netscape浏览器2.0版本和Microsoft的IE 3.0扩展了对JavaApplets和javascript的支撑。javascript语音是一种一脚本办法运行的,简化的Java语言。Web世界里未来出现了本子技术。Microsoft集团于一九九六年为IE3.0设计出了与javascript相抗衡的脚本语言——vbscript脚本语言。在Windows98及然后的Windows操作系统中,WSH(Windows script Host)技术将原来只幸亏浏览器中运维的javascript、vbscript变成了足以在WIN32环境下利用的通用脚本语言。一九九八年,Netscape 2.0得逞引入了对QuickTime插件的支撑,从此,完成了在HTML页面下音频、摄像等进一步复杂的多媒体应用。同年,IE 3.0标准帮衬在HTML页面中插入ActiveX控件的法力。从此,各式种种由分裂公司所付出的各个插件先后在浏览器上收获了成功。 

效果图:

图片 3

开拓多少个登陆窗口,分别注册用户后关门,服务端提醒音信如下:

[图为:植入JVM的WEB浏览器架构中的WEB处理组织!!!–>只是完成动态效果]
PS:大家这里所说的动态页面和静态页面是相对应的,在引入了动态技术转移的网页中,网页U揽胜L的后缀不只是.htm、.html、.shtml、.xml等静态网页的广大格局,还是可以够是以.asp、.jsp、.php、.perl、.cgi等花样为后缀。从网页内容的展现上看,动态网页引入了各项技能,使得网页内容更四种化,令人着迷;从网站的付出管理和护卫角度看,动态网页以数据库技术为底蕴,更有利网站的有限支撑,而动态网页使用了ASP对象,能够兑现诸如用户注册、用户登⑥ 、数据管理等的功用,大大提升了网络的利用率,为用户提供越多的便宜。

图片 4

图片 5

 

[图为:动态WEB执行图:动态能源请求会付出WEB容器举行拼凑HTML]

 

3.3.叁 、Web技术提升的第②品级——Web2.0新时代

怎样是Web2.0?其实,Web2.0并不曾一个精确的定义,甚至于它并不是多个具体的东西,它只是大千世界对此2个品级的叙述。在这一品级,用户能够友善主旨消息的生产和散播,从而打破了原本所固有的单向传输方式。Web2.0并不是多个探索性的改变,而只是利用范围的事物,相对于守旧的门户网站,它具有了更好的交互性。Web2.0是以Flickr、43Things.com等网站为代表,以Blog、TAG、SNS、中华VSS、wiki等社会软件的施用为着力,依据六度分隔、xml、ajax等新理论和技能达成的互连网新一代格局。

从 Web1.0到Web2.0的成形,具体的说,从方式上是从读向写、消息共同开创的叁个改成;从基本构造上说,则是由网页向发布/显示工具演化;从工具上,是由网络浏览器向各个浏览器、rss阅读器等内容发展;运行机制上,则是自“Client Server”向“Web Services”的变更;因此,网络内容的主要创小编也由专业人员向普通用户拓展。说白了,Web2.0的优良正是以人为本,提高用户采用互连网的感受。

  • 从知识生产的角度看,web1.0的职务,是将原先不曾放在网上的人类知识,通过贸易的马力,放到网上去。web2.0的职分是,将那个个文化,通过种种用户的浏览求知的劲头,同盟工作,把文化有机的团协会起来,在那么些进度中继承将知识深化,并孕育发生新的思惟火花;
  • 从内容孕育发生者角度看,web1.0是交易集团为主题把内容往网上搬,而web2.0则是以用户为主,以便捷随意格局,通过blog/podcsting 格局把新内容往网上搬;
  • 从交互性看,web1.0是网站对用户为主;web2.0是以p2p为主。
  • 从技术上看,web客户端化,工效越来越高。比如像jx技术, googlp/gmil里面用得出神入化。

PS:web2.0是以用户为中央的网络。

 

 

④ 、关键词及附加表明

  • 胖客户端\收客户端:胖客户端程序指当2个程序运行时要独自的客户端补助(如:桌面版QQ);月月红户端操作时只须求在浏览器中一贯访问即可(如:访问腾讯网)
  • 静态WEB\动态WEB:真相来说,静态WEB不能够进行数据库的操作,动态WEB的最大特点便是装有完备的交互性,根据用户请求展现差异结果。
  • C/S和B/S模式:客户端服务器方式和浏览器服务器方式,嘿嘿,那几个不做详解,一眼就知道~
  • CGI(Common Gateway
    Interface,公共网关接口):
    最早出现的兑现动态web的操作规范,具体问度娘:链接HERE
  • PHP(Hypertext
    Preprocessor,超文本预处理):
    跨平台服务器端嵌入式语言,使用Apache服务器,适合个人和小项目:链接HERE
  • ASP(Active Server
    Pages,动态服务页):
    运用VBS脚本,用于IIS服务器上,个人和小品种:链接HERE
  • ASP.NET:微软在ASP上的更新版,受平台限制,适合中等项目支出:链接HERE
  • JSP(Java Server
    Page,Java服务页):
    代码风格看似ASP,跨平台,种种服务器,适合中大型项目中,前身是Applet:链接HERE

 

五 、早先时期安插

>_<“感觉有很多事物要学呀!一堆新名词,看得想哭啊~前几日也不早啦,明日跟着学吧~

 

六 、一些链接:

WEB的度娘解释(挺全滴):http://baike.baidu.com/view/3912.htm?fr=aladdin

HTML教程(不错哦~):http://www.w3school.com.cn/html/index.asp

博主主页(嘻嘻,自打广告):http://www.cnblogs.com/zjutlitao/

 

 

PS:地点有怎样说错的地点还望我们指正…新手是从网上找的部分材质结合的,难免有错~

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注