集线器 · 网桥 · 交换机 · 路由器
关于这篇笔记:
首先需要搭建Java服务器开发环境,为之后学习作基础。
使用Idea搭建环境
这里使用的Idea版本为2020版。
一、新建项目
一、选择 New Project,选择空项目,点击下一步。
二、给项目起个名,以及设置保存的位置。然后Finish。
三、在弹出的界面中,选择Module(模块),点击“+”,选择 New Module。
四、选择Java模块,点击 next。
五、给模块取个名称,然后 Finish。
六、直接OK。
七、先暂且添加一个java类以便测试(暂定为Main;一般情况下类不直接添加在src目录下,要分包管理,不过这里先不管)。
二、添加web模块
八、右键点击项目,点击添加框架(Add Framework Support),勾选Web…(自己看图吧) 最后OK。
九、在web目录里添加了test.html和一张jpg图片以备测试。
三、Tomcat部署
十、如下图操作,可以将显示的Main变为Add Configuration(这一步不知道有什么作用,貌似只是为了好看 )。
十一、点击Add Configuration,点击“+”,选择Local。
十二、点击选择Tomcat根目录。
十三、点击Deployment,点击“+”,点击Artifact。
十四、取一个简单的名字后,OK。
十五、点击run或者debug,出现如下界面则成功。也可以通过网址来访问测试的网页。
四、Servlet
十六、添加依赖,以使用servlet。
IDE的环境搭建完成
五、测试
十七、写一个简单的登录页面和一个servlet测试一下。(登录用户名固定为123,密码456)
登录页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录test</title>
</head>
<body>
<form action="/hello/login" method="post">
<div>用户名<input name="username"></div>
<div>密码<input name="password"></div>
<button type="submit">登录</button>
</form>
<a href="test.html">这是一个测试页面</a>
<img src="../img/doge.jpg">
</body>
</html>
servlet:
package com.g.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 处理登录请求
* 1.继承HttpServlet,才能够处理HTTP请求
* 2.使用@WebServlet,说明它要处理的请求路径
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Do Get------");
doPost(request, response);
}
@Override
/**
* @param HttpServletRequest req 请求:用来获取客户端发送的数据
* @param HttpServletResponse resp 响应:用来给客户端返回数据
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Do Post------");
// 1.获取客户端发送的数据(请求参数)
String username = request.getParameter("username");
String password = request.getParameter("password");
// 2.判断
response.setHeader("Content-Type", "text/html; charset=UTF-8");
if ("123".equals(username) && "456".equals(password)) {
// 登录成功
response.getWriter().write("<h1 style=\"color: red\">登录成功!!!</h1>");
} else {
// 登录失败
response.getWriter().write("<h1 style=\"color: blue\">登录失败!!!</h1>");
}
}
}
测试结果:
java环境的搭建今天就到这里。同学们散了吧
计算机之间的的通信基础
先不考虑无线连接的问题
- 需要得知对方的IP地址。
- 最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收。
- 如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理。
- 如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
计算机之间的连接方式 - 网线直连
- 需要用交叉线(不是直通线)
- 同一网段
- ping走的是ICMP协议
- ARP协议:已知 IP地址,不知道MAC地址时,通过广播获取 MAC地址。
右边出现的3个ARP包,实际上是一次完整的发送请求、接收响应的过程。ICMP包同理。
计算机之间的连接方式 - 同轴电缆(Coaxial)
连接同一网段。
计算机之间的连接方式 - 集线器(Hub)
连接同一网段。
集线器相比同轴电缆唯一的优点:连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备的通信。
计算机之间的连接方式 - 网桥(Bridge)
还是,连接同一网段。
计算机之间的连接方式 - 交换机(Switch)
依旧是连接同一网段。
若全球所有设备都用交换机连接:
1、他们必然处于同一网段,因此 IP地址可能会不够用。
2、第一次发送数据包仍然需要ARP广播,耗费大量时间。
3、形成广播风暴,只要有一个设备发送ARP广播,全球设备都能收到。
计算机之间的连接方式 - 路由器(Router)
路由器含有网关(Gateway),网关也有IP和MAC地址。
主机在发数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段:
- 在同一个网段:ARP广播、通过交换机/集线器传递数据
- 不在同一个网段:通过路由器转发数据
上一篇:01. 基本概念
下一篇:03. MAC地址 · IP地址 · 子网掩码