网络协议一 : 搭建tomacat,intellij IDEA Ultimate 的下载,安装,配置,启动, 访问

需要搭建的环境

1.客户端--服务器开发环境 

客户端:浏览器(HTML+CSS+JS)

服务器:JAVA

1.安装JDK,配置JAVA_HOME   和  PATH

2.安装Tomcat 

3.安装IDE--intellij IDEA Ultimate  是旗舰版的意思。

2.TOMCAT 的下载和解压,配置,启动, 访问

tomcat 下载完成后,解压到本地计算机的任意一个地方就OK了,不用安装

D:\Ctool\JAVA\tomcat\apache-tomcat-8.5.93-windows-x64\apache-tomcat-8.5.93\bin

2.1启动tomcat

在windows 下 ,执行 startup.bat 文件

D:\Ctool\JAVA\tomcat\apache-tomcat-8.5.93-windows-x64\apache-tomcat-8.5.93\bin\startup.bat

在linux 下,执行 startup.sh 文件

当前下载的8.593 windows 版本,并没有startup.sh文件

在windows上启动后的截图

我们看到最后一行,提示 startup in 1124ms,说明正常启动了,花费了 1124ms

但是有个问题,中文是乱码

改动方法:

修改Tomcat的logging配置:

进入Tomcat的安装目录,找到conf文件夹中的logging.properties文件。
编辑该文件,找到如下一行(如果没有,可能需要手动添加):
java.util.logging.ConsoleHandler.encoding = UTF-8
将其修改为:
java.util.logging.ConsoleHandler.encoding = GBK

2.2 网络访问一个服务器上的某一个应用程序

假设在腾讯的服务器上,有两个服务器软件(一个tomcat1 ,一个tomcat2),

服务器软件1 tomcat1 占用80端口,上面有两个项目:一个qq,一个weixin

服务器软件2 tomcat2 占用8080端口,上面有两个项目:一个qq,一个wangzherongyao

假设 这台服务器的IP是:10.10.128.45

那么如果我们要访问 8080 端口的qq项目,下面的一张图片img,

访问路径应该是:  http://10.10.128.45:8080/qq/img

2.3 访问自己我们刚才启动的tomcat,

首先要知道启动这台电脑的ip,cmd执行ipconfig,就能知道IP

而tomcat使用的端口是8080,因此就知道了ip+端口

在浏览器上输入 http://192.168.31.202:8080/ 

因为我们是在当前计算启动的tomcat,因此ip也可以使用127.0.0.1,127.0.0.1也叫做回环地址

http://127.0.0.1:8080

也可以使用localhost

http://localhost:8080

结果如下:

这里还有一个问题,我们在网页输入的时候 并没有输入 项目名字,直接 http:// ip+端口 就访问了tomcat。实际上这个是个缺省配置。

我们从tomcat的文件目录可以看到实际上有很多的 项目。tomcat 中的项目都是放在 webapps中的

那我们使用 如下的三个地址理论上就能访问 docs 这个项目了

http://192.168.31.202:8080/docs/

http://127.0.0.1:8080/docs/

http://localhost:8080/docs/

实际测试结果发现,通过真实 IP 访问的不行,其他两个都可以,失败的时候报的error是403,并不是404

关于403 (403错误是网站访问过程中,常见的错误提示。资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致,比如IIS或者apache设置了访问权限不当。)

在测试一个  http://127.0.0.1:8080/examples/

也是OK的

3.IDE--intellij IDEA Ultimate 的下载,安装,配置,启动, 访问

3.1.安装和破解

1. 卸载之前安装的IDEA

先删除之前安装的IDEA,如果之前安装过;则需要卸载,如果之前没有安装过,则不需要卸载

2. 将之前版本遗留的路径下的东西最好也删除了

C:\Program Files\JetBrains

C:\Users\Administrator\AppData\Local\JetBrains

C:\Users\Administrator\AppData\Roaming\JetBrains

3.运行如下的脚本,将注册表中的信息之类的删除了,然后重新注册

D:\Ctool\JAVA\IDEA\ja-netfilter-all\scripts\uninstall-all-users.vbs

D:\Ctool\JAVA\IDEA\ja-netfilter-all\scripts\install-all-users.vbs

4.安装如下版本的IDEA

D:\Ctool\JAVA\IDEA\ideaIU-2021.3.3.exe

5.激活

3.2 IDEA 的使用

新建项目

一个项目下有很多模块,这里新建一个模块

在模块下面新建一个具体的类

右键可以执行

3.3在IDEA中运行tomcat 并部署一个web 项目

3.3.1 给该项目 中的某一个模块 添加 web 应用程序,注意是要在java 模块上 “添加框架支持”

然后就会多一个web 文件夹

其中index.jsp 就是web 项目的首页,改动index.jsp中的字,方便以后检查

为了测试期间,我们还添加了两个文件  1.jpg, 和 aa.html.  注意:都是要放在 web 文件下的
 

3.2下一步:将tomcat集成到IDEA中,

注意:配置 Tomcat主目录是在 tomcat bin 的上一层
D:\Ctool\JAVA\tomcat\apache-tomcat-8.5.93-windows-x64\apache-tomcat-8.5.93

3.3 并 将项目部署到 tomcat

3.4 运行

http://localhost:8080/Helloworldweb/  是首页,如果没有写,tomcat 会自动的寻找 index.jsp之类的网页
 

3.5 注意事项 以及测试

注意您的项目部署的时候,重命名为 Helloworldweb,那么网址也就是这样了

打开如下

http://localhost:8080/Helloworldweb/1.jpg

http://localhost:8080/Helloworldweb/aa.html

3.6重新部署

4.IDEA 中使用 servlet-api 和 jsp-api,

在学习网络抓包的过程中,我们需要和服务器进行交互,那么就需要使用到 servlet 和 jsp 。

参见 baidu 关于 servlet 的说明:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

那么如何在IDEA中将 servlet 和 jsp 库导入呢?实际上tomcat中的lib 目录下,已经提供了这两个jar包了,我们要学习的就是如何在IDEA中导入这两包

在右上角的 项目结构中,

只要把tomcat 的lib添加进去,对应的servlet 和 jsp 就也会想用的添加进去

5.那么添加这个有啥用呢?主要是使用servlet 的交互功能

这是因为我要学习的是网络协议相关的内容,一定要让 客户端 和 服务器有 交互,不然怎么知道 客户端发的啥?服务器回复的啥?那学习个寂寞。

6. 在IDEA中实现一个网页,该网页会有username 和 password,还有一个提交 按钮,点击后和服务器实现交互功能

我们在web 下新建一个html 文件夹,在这个文件夹下新建一个 login.html

根据前面的知识,我们部署后,访问该 html的路径为:

http://localhost:8080/Helloworldweb/html/login.html
Helloworldweb 为我们给该项目起的名字

那么我们在里面写了一个form ,其action 的意思是,点击了submit后,应该将 username 和password 转到哪一个界面进行处理。

可以看到,刚开始我们写了一行 action="http://127.0.0.1:8080/HelloWorldweb/login"

意思是会指向 http://127.0.0.1:8080/HelloWorldweb 这个项目下的login网址。

后面又注释了,写成了 action="/HelloWorldweb/login", 实际上这两行的意思是一样的。

<!--<form action="http://127.0.0.1:8080/HelloWorldweb/login" method="get">-->
<form action="/HelloWorldweb/login" method="get"><div>用户名 <input name="username"></div><div>密码 <input name="password"></div><button type="submit"> 登陆 </button></form>

那么问题是这个login 具体是指向哪里呢?

这个login 实际上是我们新建一个 java 类,这个java 类的地址,这个类有些特殊,1.继承 HttpServlet类,2.使用@WebServlet 注解 

我们当前的注解 @WebServlet("/login") 后面跟的是 "/login",表示的就是当前java 类的访问路径就是 http://127.0.0.1:8080/HelloWorldweb/login ,,如果我们省略 ip+port 就是 /HelloWorldweb/login

/*** servlet要处理http请求,有两步需要实现* 1.继承 HttpServlet类* 2.使用@WebServlet 注解,我们这个项目原本的访问路径为  http://127.0.0.1:8080/HelloWorldweb* 我们在 @WebServlet 注解 后面加上"/login" 说明 如果要访问当前的 LoginServlet.java, 访问路径 http://127.0.0.1:8080/HelloWorldweb/login* 那么可以直接在浏览器 中 输入  http://127.0.0.1:8080/HelloWorldweb/login 访问吗?* 答案是可以的,只是什么都没有。那么这个还有啥用?* 我们新建的 web下的html 文件夹下的 login.html 中的 from的action 指向 http://127.0.0.1:8080/HelloWorldweb/login* 也可以直接写成 HelloWorldweb/login*/

package com.hunandede.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;/*** servlet要处理http请求,有两步需要实现* 1.继承 HttpServlet类* 2.使用@WebServlet 注解,我们这个项目原本的访问路径为  http://127.0.0.1:8080/HelloWorldweb* 我们在 @WebServlet 注解 后面加上"/login" 说明 如果要访问当前的 LoginServlet.java, 访问路径 http://127.0.0.1:8080/HelloWorldweb/login* 那么可以直接在浏览器 中 输入  http://127.0.0.1:8080/HelloWorldweb/login 访问吗?* 答案是可以的,只是什么都没有。那么这个还有啥用?* 我们新建的 web下的html 文件夹下的 login.html 中的 from的action 指向 http://127.0.0.1:8080/HelloWorldweb/login* 也可以直接写成 HelloWorldweb/login*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doget");doPost(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("dopost");String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("accept value = " + username + "_" + password);if(username.equals("123") && password.equals("456")){//登陆成功response.getWriter().write("username = 123, password = 456, means login success");}else{//登陆失败response.getWriter().write("username != 123, or  password != 456, means login fail");}}
}

重新部署

运行结果:

成功 

网络抓包 

浏览器(chrome firefox),fiddler,wireshark

模拟工具

作用是模拟交换机,路由器,计算机,一个或者多个,因为不可能真的去买个交换机,路由器吧

Xshell ,Packet Tracer,GNS3

路由器,交换机

静态路由,动态路由

局域网,以太网,无线局域网

DNS,CDN,VPN,NAT

MAC,IPV4,IPV6,端口

子网划分,子网掩码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件操作相关的精讲

目录&#xff1a; 思维导图 一. 文件定义 二. 文件的打开和关闭 三. 文件的顺序读写操作 四. 文件的随机读写操作 五. 文本文件和二进制文件 六. 文件读取结束的判断 七.文件缓冲区 思维导图&#xff1a; 一. 文件定义 1.文件定义 C语言中&#xff0c;文件是指一组相…

Java中的二叉搜索树(如果想知道Java中有关二叉搜索树的知识点,那么只看这一篇就足够了!)

前言&#xff1a;Java 提供了丰富的数据结构来处理和管理数据&#xff0c;其中 TreeSet 和 TreeMap 是基于红黑树实现的集合和映射接口。它们有序地存储数据&#xff0c;提供高效的搜索、插入和删除操作。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主…

web基础,http协议,apache概念及nginx

一、web相关概念 Web&#xff0c;全称World Wide Web&#xff0c;通常简称为WWW、Web或万维网&#xff0c;是一个基于超文本和HTTP&#xff08;超文本传输协议&#xff09;的、全球性的、动态交互的、跨平台的分布式图形信息系统。它起源于1989年&#xff0c;由英国科学家蒂姆…

文本编辑三剑客(grep)

目录 正则表达式 元字符 grep 案例 我在编写脚本的时候发现&#xff0c;三个文本编辑的命令&#xff08;grep、sed、awk&#xff0c;被称为文本编辑三剑客&#xff0c;我习惯叫它三巨头&#xff09;用的还挺多的&#xff0c;说实话我一开始学的时候也有些懵&#xff0c;主要…

(史上最全的)Spring6框架学习教程

一、什么是Spring 1.javaWeb框架发展史 1、ServletJSPJavaBean(跳转页面、业务逻辑判断、数据库查询) 2、MVC三层架构(M Model pojo(User)V-view(USP)C-(controller-servlet)) (web-跳转页面service-业务逻辑判断 new UserService0;dao-数据库查询 new UserDao(); ) 3、使用…

二、八、十、十六进制介绍及相互转换

目录 1、引言&#xff1a; 2、进制介绍及区分 2.1 介绍 2.2 区分 2.3 各进制的数字组成 3、2进制与10进制 3.1 十进制的介绍 3.2 二进制的介绍 4、2进制与10进制的转换 4.1 二进制转十进制 4.2 十进制转二进制 5、8进制和16进制 5.1 八进制的介绍 5.2 十六进制的介…

告别抠图烦恼,1秒搞定100张图片背景更换!

想象一下&#xff0c;你手头有几十张甚至上百张证件照需要从白底换成蓝底&#xff0c;而你只能用Photoshop一张张抠图&#xff0c;调整&#xff0c;然后保存。这个过程不仅耗时&#xff0c;还容易出错&#xff0c;特别是当你急需处理大量图片时&#xff0c;简直让人抓狂。 千鹿…

“云+端”体系覆盖590余所学校,张家口如何建设“教育一朵云”?

当将装有小苏打的气球套在装有白醋的塑料瓶瓶口时,一场令人惊叹的化学反应开始上演——瓶内瞬间白雾腾起弥漫,气泡翻滚不息,气球逐渐吹了起来......这是在张家口教育云平台上的由学生及家长上传的关于“小苏打吹气球”的科学实验视频,而学生们与家长参与的便是张家口市中小学云…

昇思MindSpore学习入门-静态图高级编程技巧二

如何优化执行性能 使用jit_class 使用场景&#xff1a;使用jit_class装饰器修饰自定义类&#xff0c;提高执行性能。jit_class应用于静态图模式&#xff0c;在动态图模式下&#xff0c;jit_class会被忽略&#xff0c;不影响动态图模式的执行逻辑。 jit_class的介绍 用户在网…

快递代拿系统/快递代领系统

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括快递代拿系统的网络应用&#xff0c;在外国快递代拿已经是很普遍的方式&#xff0c;不过国内的快递代拿可能还处于起步阶段。快递代拿系统具有代取物品功能。快递代拿系…

嵌入式学习Day12---C语言提升

目录 一、指针数组 1.1.什么是指针数组 2.2. 格式 2.3.存储 2.4.与字符型二维数组相比 2.5.什么时候使用指针数组 2.6.练习 二、数组指针 2.1.什么是数组指针 2.2.格式 2.3.一维数组 2.3.特点 2.4.什么时候使用 三、指针和数组的关系 3.1.一维数组和指针 …

ps制作镂空文字

1、创建文字。 2&#xff0c;栅格化文字 2、载入选取 3.选择》修改》收缩 4、然后再点击删除键&#xff0c;镂空文字效果就做好了。 同样适用于简单的图片logo

AI智能名片小程序在预测性产品管理与营销中的深度应用探索

摘要&#xff1a;本文深入探讨了AI智能名片小程序在预测性产品管理与营销中的广泛应用及其带来的深远影响。通过详细分析该技术在数据收集、市场分析、用户画像构建、个性化推荐、客户关系管理以及风险预测等方面的具体实践&#xff0c;本文揭示了AI智能名片小程序如何助力企业…

刚起步的小型海外仓有必要上WMS系统吗?答案来了

首先&#xff0c;这里的自动化主要是指将库存管理、SKU管理&#xff0c;一件代发、财务管理等海外仓的日常作业流程通过WMS系统实现的自动化。 而不是指海外仓自动化机器人、智能导轨等硬件设备。 文章会针对刚起步的一些小型海外仓是否有必要使用WMS系统进行讨论&#xff0c…

捷报来袭!上半年HCIE通过120人!证书量总计1767

智汇云校捷报 —上半年华为认证证书量1767本— 2024年上半年&#xff0c;云校HCIA、HCIP、HCIE证书量总计1767本&#xff01; HCIA&#xff1a;1240本 HCIP&#xff1a;407本 HCIE&#xff1a;120本 祝贺以下学员通过HCIE认证&#xff01; 欢迎有考证需求的学员 咨询云校…

Python文件打包exe文件

作者的一点话 你是否还在为py文件无法像其他可视化项目展示出来&#xff0c;制造图形界面的移动使用&#xff0c;那接下来我会与你一同使用它&#xff0c;并进行study&#xff0c;如有困惑&#xff0c;可随时联系。 然后&#xff0c;需要使用pysimplgui&#xff0c;如果…

[网络编程】网络编程的基础使用

系列文章目录 1、 初识网络 网络编程套接字 系列文章目录前言一、TCP和UDP协议的引入二、UDP网络编程1.Java中的UDP2.UDP回显代码案例3.UDP网络编程的注意事项 三、TCP网络编程1.TCP回显代码案例2.TCP多线程使用 总结 前言 在学习完基础的网络知识后&#xff0c;完成跨主机通…

元器件基础学习笔记——二极管基础

一、二极管基础 二极管是用半导体材料(硅、硒、锗等)制成的一种电子器件&#xff0c;具有单向导电性&#xff0c;是现代电子技术的基石。它在电子电路中扮演着至关重要的角色&#xff0c;通过与电阻、电容、电感等元器件的合理连接&#xff0c;能够实现整流、检波、限幅、稳压等…

Midjourney只需输入描述性文本,就能生成栩栩如生的图像

前言 Midjourney 是一款基于人工智能的图像生成工具&#xff0c;由 Midjourney 研究实验室开发。它最初在2022年3月面世&#xff0c;并在同年7月12日开始公开测试。Midjourney 的核心功能是能够根据用户提供的文本提示&#xff08;prompt&#xff09;&#xff0c;利用其内置的…

【软件测试】--接口自动化测试

1. 接口自动化 1.1 概念 接口测试&#xff1a;是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换、传递和控制管理过程&#xff0c;以及相互逻辑依赖关系 自动化测试&#xff1a;是把以人为驱动的测试行为转化为机器执行的一种过程 接口自动化测试&#xff1…