• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

#网络日01

# # I .服务器

网络服务器由* *硬件* *和* *软件* *组成。

角色:接收并回应客户请求。

硬件:主机等。

软件:tomcat等。

`我自己的理解:服务器是一台公共计算机,tomcat等软件为互联网中的其他主机提供服务,服务器会将本地文件映射成一个url链接,作为其他主机访问的地址。`

# #二。tomcat的安装和导入

### 1.tomcat分为安装版和压缩版。

一般建议使用压缩版。解压后,只需点击启动即可启动。

注意:为了保证cmd窗口启动后的存活,使用http://localhost:8080进行测试。

一定要把java放在名为JAVA_HOME的配置环境中。

# #三。配置idea的tomcat

### 1.导入tomcat文件

设置——构建、执行、部署——应用服务器——可以通过将它们放在tomcat路径中成功导入。

目录:

Bin:可执行文件

Startup.bat启动服务器

Shutdown.bat终止服务器

Conf:配置文件

Lib:jar包

日志:日志

Temp:临时文件

Webapps:已发布文件的部署

Work:工作目录

# #四。创建动态Web项目

### 1.创建动态web项目

注:这是idea的较低版本,较高版本用的是mavean。

新模块- java企业-检查web应用程序-完成

目录:

Src:编写动态java代码

Web:静态资源

- web-INF

js

css

.超文本标记语言

-lib3360存储jar包

web.xml3360配置web工程。

Index.jsp:已过时并被删除。直接创造index.html。

# # # 2 . web工程的tomcal实例-设置

输入编辑配置-您可以修改名称、默认浏览器,并且“更新”操作被设置为值re deploy-您可以在部署中设置已部署的war文件。

# # V. Http协议

### 1.定义

超文本传输协议是TCP/IP下的一个协议,它规定了浏览器和Web服务器之间的通信规则。规定了数据的船舶传输规则。

消息:数据传输的格式。

客户端-服务器:请求消息

服务器-客户端:响应消息

### 2.浏览器和服务器交互的四个步骤

建立连接——三次握手。

发送请求。

数据反馈

断开-波四次。

`查看请求响应f12右-检查-网络的详细信息'

# # # 3.HTTP 1.0和Http1.1的区别

在HTTP1.0版本中,当浏览器请求带有图片的网页时,会通过下载图片打开与服务器的新连接;但在HTTP1.1版本中,允许浏览器在获取当前请求对应的所有资源后断开连接,提高了效率。

### 4.消息

6.1请求消息:客户端向服务器发送请求的数据格式。

请求(第一)行

请求标题:

请求正文:

` ` http

获取请求

请求(第一)行3360

请求提交地址:应用名称资源名称提交的数据协议版本

GET /day11Web/success.html?uname=zspwd=123 HTTP/1.1

请求标题:

主机:本地主机:8080主机虚拟地址

连接:保持-al

ive 长连接
Upgrade-Insecure-Requests: 1 请求协议的自动升级[http的请求,服务器却是https的,浏览器自动会将请求协议升级为https的]
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
- 用户系统信息
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
- 浏览器支持的文件类型
Referer: http://localhost:8080/05_web_tomcat/login.html
- 当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]: 可以通过此路径跳转回上一个页面, 广告计费,防止盗链
Accept-Encoding: gzip, deflate, br
- 浏览器支持的压缩格式
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
- 浏览器支持的语言

请求体:请求携带的数据
get请求数据在浏览器的地址栏 没有请求体
```


```http
6.1.2post 请求
请求(首)行 提交地址:应用名+资源名 协议 版本
POST /day11Web/success.html HTTP/1.1
请求方式
请求头
接收的文件类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Accept-Language: zh-CN,zh;q=0.9 语言类型
Connection: keep-alive 保持连接
Cookie: Idea-dba54f96=c3a62b54-de1c-464e-898b-19755c8e4fdb 会话控制
Host: localhost:8080 主机名
Referer: http://localhost:8080/day11Web/ 防止盗链
客户端信息:判断是手机还是电脑
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36

请求体:发送请求时携带的数据
uname=zs&pwd=123

get
表单没有写请求类型 默认get
```

get 和 post的区别:

GET VS POST:
1.安全问题
get请求数据在地址栏 直接可见 不安全
post数据在请求体中 不直接可见 安全

2.传输的数据量不同
get请求容量大概是4k左右

post请求没有容量限制

3.效率
get请求效率高
post请求效率低

4.如果没有特别指定采用post请求 则默认是get请求
<a href="http://www.baidu.com" >百度一下</a> get
直接在浏览器地址栏 输入网址 回车

 

 

 

6.2 响应报文:服务器返回数据给客户端的数据格式
http://localhost:8080/day11Web/index.html

响应行
协议/版本 状态码
HTTP/1.1 200
响应头
最后修改时间
Last-Modified: Tue, 03 May 2022 06:01:31 GMT
Content-Type: text/html 内容类型
Content-Length: 590 内容的大小 单位是字节
Date: Tue, 03 May 2022 06:15:24 GMT 时间是0时区的 找当前时间是 +8:00
响应体
html
css
js
图片
注意:
响应码
200 成功
404 资源未找到
500 服务器内部问题
50X java代码问题
302 重定向

 

## 六、web资源

由**静态资源**和**动态资源**组成。

1.静态资源: html css js 图片....
2.动态资源:通过代码控制展示的动态数据

 

## 七、Servlet

### 1.定义

一套定义动态资源规范

代码层面:就是一个接口。

作用:接收用户请求 响应用户请求

 

### 2.servlet的使用思路

①创建webModule

②创建html页面

```html
<!--
使用绝对路径: /部署的项目名/要访问的资源路径
-->
<a href="/webday05/hello">访问HelloServlet</a>
```

③创建HelloServlet

```java
package com.atguigu.servlet;

import javax.servlet.*;
import java.io.IOException;

/**
* 包名:com.atguigu.servlet
*
* 编写Servlet的步骤:
* 1. 编写一个类实现Servlet接口,并且重写里面的方法: 主要是要重写service方法
* 2. 重写service方法,service方法中就是接收、处理请求,并且将信息响应给客户端
* 3. 配置Servlet的映射路径(供客户端访问的路径):在web/WEB-INF/web.xml中配置
4.注意,返回数据不能是中文


*/
public class HelloServlet implements Servlet {

@Override
public void init(ServletConfig config) throws ServletException {

}

@Override
public ServletConfig getServletConfig() {
return null;
}

@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
//使用响应输出流向浏览器输出: Hello,I am Servlet
System.out.println("helloservlet startup---");
res.getWriter().write("Hello,I am Servlet");
}

@Override
public String getServletInfo() {
return null;
}

@Override
public void destroy() {

}
}
```

④ 在web.xml中配置HelloServlet

```xml
<!--配置HelloServlet的映射路径 -->
<servlet>
<!--相当于给该Servlet取个名,我们可以就使用Servlet的类名/类名首字母改小写-->
<servlet-name>helloServlet</servlet-name>
<!--你要配置的那个Servlet的全限定名-->
<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<!--和servlet标签中的servlet-name保持一致 -->
<servlet-name>helloServlet</servlet-name>
<!--这就是要给HelloServlet配置的映射路径,以/开头-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
------------------------------------------------------------------------------------------

<!-- 配置servlet,告诉tomcat服务器要使用的功能-->
<servlet>
<!-- servlet名字可以随意写,但要与mapping保持一致-->
<servlet-name>HelloServlet</servlet-name>
<!-- 写全包名,实现了servlet接口的java类-->
<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- 要保持与servlet名字一致,为了完成路径映射-->
<servlet-name>HelloServlet</servlet-name>
<!-- 拦截路径就是 html文件点击了下边的连接之后,会自动映射到上一行的HelloServlet ,同时HelloServlet会自动调用类,完成对应的功能-->
<!-- / 是省略了http://ip:port/工程路径(day06servlet)/资源文件(helloServlet)-->
<url-pattern>/helloServlet</url-pattern>
</servlet-mapping>
```

<span style="color:blue;font-weight:bold;">『映射路径』</span>:Servlet并<span style="color:blue;font-weight:bold;">不是</span>文件系统中<span style="color:blue;font-weight:bold;">实际存在</span>的<span style="color:blue;font-weight:bold;">目录或文件</span>,所以为了方便浏览器访问,我们创建了<span style="color:blue;font-weight:bold;">映射路径</span>来访问它。

 

### 3.tomcat的总体逻辑

![image-20220503191306677](C:\Users\李思坤\AppData\Roaming\Typora\typora-user-images\image-20220503191306677.png)

### 4.访问资源的地址

#### 4.1 访问静态资源

/Web应用名称/静态资源本身的路径(就是静态资源在web文件夹中的路径)

#### 4.2 访问动态资源

/Web应用名称/映射路径

### 5.使用注解来配置servlet

@WebServlet("/third")
public class ThiredServlet implements Servlet {
//重写的方法
}
10.1访问Servlet的方式一
<a href="third"> 访问第三个Servlet</a>
10.2访问Servlet的方式一
http://localhost:8080/day11Servlet1/third

### 6.servlet的声明周期

servlet 对象什么时候创建,谁创建?
当请求被拦截时 加载web.xml指定的Servlet 通过反射创建对象
1.默认是当需要此Servlet处理请求时 才会创建指定的Servlet对象
2.Servlet容器创建 容器早tomcat内部

init()初始化方法 只会【执行一次】
可以对处理请求做【准备】工作


service() 处理请求的方法
处理请求的逻辑写在此处
来一次请求执行一次

destroy() 销毁方法
关闭服务器 会导致Servlet销毁
关闭资源操作

如果某个Servlet 需要随着服务器的启动而创建 那么可以配置 <load-on-startup>3</load-on-startup>
数字越小 启动越靠前 最小值是 0
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.atguigu.servlet.FirstServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>

Link to comment
Share on other sites