第二节

作者: 抹不掉那伤1 | 来源:发表于2020-12-10 23:33 被阅读0次

    一、完成简单的客户端和服务器交互

    1、创建可空工程

    1、打开idea
    2、Creat New Project
    3、选择Empty Project -> Next ->输入名字选择路径->Ok
    4、在Project Structure窗口中选择Modules点击“+” -> Next->输入moduleName->Finsh->点击新建的模块的下拉箭头
    5、选中src->右键->New->javaClass->输入名字->Main->添加main方法->编辑代码输出“Hello World!!!”,点击运行。第一个代码成功了
    6、增加web模块:
    选中模块->右键->add fromwork support->选中web Application->OK
    7、选中web添加test.html文件
    8.1、将tomCat集成到IDEA中
    点击Add Configuration->点击“+”选择Tomcat Server local->为集成的tomCat取个名字(在Name后面输入)->点击server下的Configure选择tomCat的目录
    8.2、点击Deployment(部署)->点击“+”选择Artifact(只有一个模块的时候会默认加进去)->选择Application context:(这个代表用什么路径能访问到这个程序)->ok
    9、run tomCat 成功
    打开的网页默认会找index.htm、index.html、index.jsp
    修改路径可访问不同的资源
    10、添加一个login.html文件编写表单username和password,添加按钮type为submit

    <form action="/hello/login" method="post">
        <div>用户名<input name="username"></div>
        <div>密码<input name="password"></div>
        <button type="submit">登陆</button>
    </form> 
    

    11、想用java代码就收客户端的东西需要引用
    在Project Structure窗口中选择Modules选中我们添加的Module->选中Dependencies->点击“+”->选择Library->选择Tomact->Add Selected->OK.
    12、选中src->右键->java Class->com.xxxx.yyy.ClassName

    /**
     * 处理登陆请求
     * 1、继承HttpServlet,才能处理http请求
     * 2、适用@WebServlet,说明她要处理的请求路径
     */
    @WebServlet("/login")
    public class LoginServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doPost(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username = req.getParameter("username");
            String password = req.getParameter("password");
            System.out.println(username + "_" + password);
    
            if ("123".equals(username) && "456".equals(password)) {
                resp.getWriter().write("Login Success!!!");
            }
             else
            {
                resp.getWriter().write("Login Failure!!!");
    
            }
    
        }
    }
    

    13、修改login.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登陆</title>
    </head>
    <body>
    <form action="/hello/login" method="post">
        <div>用户名<input name="username"></div>
        <div>密码<input name="password"></div>
        <button type="submit">登陆</button>
    </form>
    </body>
    </html>
    

    注意from中的action

    二、

    1、计算机中间的通信基础

    想课对方通讯必须知道对方的ip地址。根据ip地址翻译为网卡地址


    image.png

    2、计算机之间的连接方式 - 网线直连

    ARP协议(广播) 同一个网段之间连接
    有了ip地址 后发消息就会用ARP协议
    拟人:问下你知道ip地址为********的mac地址吗?
    发出的消息有原ip地址和原mac地址,目标ip地址和目标mac地址FFFF.FFFF.FFFF。

    3、计算机之间的恶链接方式-同轴电缆(Coaxial)

    半双工通信:不能同时互相发送消息
    容易冲突:不能同时存在发送消息的设备
    不安全:消息不是发给我的我也能解析到
    中间段了,整个系统都瘫痪了


    image.png

    4、计算机之间的连接方式 - 集线器(Hub)

    半双工通讯
    容易冲突
    不安全


    image.png

    跟同轴线缆一样:没有智商
    和一个计算机连接的线不会影响其他的设备

    5、计算机之间的连接方式 - 网桥(Bridge)

    能够通过自学习的值每个接口那侧的MAC地址
    从而起到隔绝冲突域的作用


    image.png

    6、计算机之间的连接方式 - 交换机(Switch)

    相当于接口更多的网桥
    全双工通讯
    比集线器安全


    image.png
    • 思考全球所有的设备都用交换机连接会是什么情况?
      交换机连接的设备都是同一个网段

    7、计算机之间的连接方式 - 路由器(Router)

    网线之恋、同轴电缆、集线器、网桥、交换机。
    以上连接的设备唏嘘在统一网段
    连接的设备出来同一广播域

    IP地址最后一个字节不同处在一网段。

    关键字广播风暴:
    在同一个网段的设备太多了。

    路由器

    可以在不同网段之间转发数据
    隔绝广播域

    image.png

    主机发数据前,首先会判断咪表主机的IP地址跟它是否在同一个网段
    视频时间:第3个视频37分左右
    1、在一个网段:ARP、通过交换机、集线器
    2、不在一个网段:通过路由器的网关,发一个ARP找到自己的网关得到自己网关的mac地址在向自己的网关发送icmp数据,路由器判断目标ip在另一个端口的网段里,另一个端口发个ARP找到目标ip对应的mac再将数据传给它。

    相关文章

      网友评论

          本文标题:第二节

          本文链接:https://www.haomeiwen.com/subject/qhlcgktx.html