第65天学习打卡(JavaWeb 基本概念 web服务器 Tomcat http maven)

JavaWeb

java web

1.基本概念

1.1 前言

web开发:

  • web ,网页的意思,www.baidu.com

  • 静态web

    • html css
    • 提供给所有人看的数据始终不会发生变化
  • 动态web

    • 几乎所有的网站都是

    • 提供给所有人看的数据始终会发生变化 ,每个人在不同的时间,不同的地点看到的信息各不相同。

    • 技术栈:Servlet/JSP ASP PHP

    在Java中,动态web资源开发的技术统称为JavaWeb

1.2 web应用程序

web应用程序:可以提供 浏览器访问的程序

  • a.html、b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务;
  • 你们能访问到的任何一个页面或者资源,都存在于这个世界的某一角落上的计算机上。
  • URL
  • 这个统一的web资源会被放在同一的文件夹下,就组成的web应用程序-----》Tomcat:服务器
  • 一个web应用由多部分组成(静态web 动态web)
    • html,css,js
    • jsp,servlet
    • java程序
    • jar包
    • 配置文件(Properties)

web应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理。

1.3静态web

  • *.html, *.html这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取,通络。

image-20210314150418415

  • 静态web存在的缺点

    • web页面无法动态更新,所有用户看到的都是同一个页面

      • 轮播图,点击特效:伪动态

      • JavaScript

      • VBScript

    • 它无法和数据库交互(数据无法持久化,用户无法交互)

1.4动态web

页面会动态展示:“web的页面展示的效果因人而异”

image-20210314151150293缺点:

  • 假如服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布。
    • 停机维护

优点:

  • Web页面可以动态更新,所有用户看到都不是同一个页面

  • 它可以与数据库交互(数据持久化:注册 商品信息 用户信息…)

    image-20210314151521557

2.web服务器

2.1技术讲解

ASP:

  • 微软:国内最早流行的就是ASP;

  • 在HTML中嵌入了VB脚本,ASP+COM

  • 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱

  • 维护成本高!

  • C#

  • IIS

    <h1>
        <h1><h1>
            <h1>
                <h1>
                    <h1>
            <h1>
                <%
                   System.out.println("hello")
                   
                   %>
                    <h1>
                        <h1>
        <h1><h1>
        
        
        
        
        <h1>
    

PHP

  • PHP开发速度很宽,功能很强大,跨平台,代码简单(70%。WP)
  • 无法承载大访问量的情况(局限性)

JSP/Servlet:

B/S:浏览和服务器

C/S:客户端和服务器

  • sun公司主推B/S架构
  • 基于Java语言的(所有的大公司,或者一些开源的组件,都是用Java写的)
  • 可以承载三高问题带来的影响:高并发 高可用 高性能
  • 语法像ASP , ASP---->JSP,加强市场强度;

2.2 web服务器

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息

IIS

微软的;ASP…,Windows中自带的

Tomcat

面向百度编程;

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,是最佳选择。

Tomcat 实际上运行JSP 页面和Servlet。目前Tomcat最新版本为9.0.41**。**

工作3-5年后,可以尝试手写Tomcat服务器

下载tomcat:

1.安装or解压

2.了解配置文件及目录结构

3.这个东西的作用

3.Tomcat

3.1 安装tomact

下载官网:https://tomcat.apache.org/download-10.cgi

image-20210314155628122

3.2Tomact启动和配置

文件夹作用:

image-20210314160929112

启动,关闭Tomcat

image-20210314161855092

输入:http://localhost:8080/可以打开网站

image-20210314161959606

可能会遇到的问题:

​ 1,java环境变量没有配置

​ 2.闪退问题:需要配置兼容性

​ 3.乱码问题:配置文件中设置

3.3配置

image-20210314162422174可以配置启动端口号

  • tomcat的默认端口号为:8080

  • mysql:3306

  • http:80

  • https:443

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

可以配置主机的名称

  • 默认的主机名为:localhost-> 127.0.0.1
  • 默认的网站应用存放的位置为:webapps
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

高难度面试题:

请你谈谈网站是如何进行访问的:

​ 1 输入一个域名:回车

​ 2 检查本机的:C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;

​ 1.有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问

127.0.0.1       localhost

​ 2.没有:去DNS服务器找,找到的话就返回,找不到就返回找不到。

image-20210314170446439

4 可以配置一下环境变量(可选项)

3.4发布一个web网站

不会就先模仿

  • 将自己写的网站,放到服务器中(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

网站应该有的结构

-- webapps:Tomcat服务器的web目录
    - ROOOT
    - kuangstudy:网站的目录名
       - WEB-INF
          -classes: java程序
          -lib:web应用程序所依赖的jar包
          -web.xml:网站的配置文件
        - index.html默认的首页
      - static
              -css
                 -style.css
              -js
              -img
           -.....

HTTP协议:面试

Maven:构建结构

  • Maven安装包

Servlet入门

  • HelloWorld!
  • Servlet配置
  • 原理

4Http

4.1s什么是HTTP

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

  • 文本:html,字符串,…

  • 超文本:图片,音乐,视频,定位,地图…

  • 默认端口:80

Https:安全的

  • 默认端口443

4.2两个时代

  • http1.0
    • HTTP/1.0: 客户端可以与web服务器连接后,只能获得一个web资源,然后就断开连接了。
  • http2.0
    • HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。

4.3Http请求

  • 客户端-----发请求(Request)----服务器

    百度:

请求 URL: https://www.baidu.com/
请求方法: GET
状态代码: 200 OK
远程地址: 183.232.231.174:443
引用站点策略: strict-origin-when-cross-origin
Request URL:https://www.baidu.com/请求地址
Request Method:GET // get方法/post方法
Status Code:200 OK//状态码:200
Remote Address:14.215.177.39:443
Referrer Policy:no-referrer-when-downgrade
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6//语言
Cache-Control: max-age=0
Connection: keep-alive

1请求行
  • 请求行中的请求方式:GET
  • 请求方式:Get ,Post,HEAD,DELETE,PUT,TRACT…
    • get:请求能够携带的参数较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效。
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
2.消息头
Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持哪种编码格式GBK  UTF-8 GB2312 ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
HOST: 主机    

4.4Http

  • 服务器—响应—客户端

    百度:

    Cache-Control: private  //缓存控制
    Connection: keep-alive //连接
    Content-Encoding: gzip//编码
    Content-Type: text/html;charset=utf-8//类型
    
    1 响应体
    Accept: 告诉浏览器,它所支持的数据类型
    Accept-Encoding: 支持哪种编码格式GBK  UTF-8 GB2312 ISO8859-1
    Accept-Language: 告诉浏览器,它的语言环境
    Cache-Control: 缓存控制
    Connection: 告诉浏览器,请求完成是断开还是保持连接
    HOST: 主机   
    Refrush:告诉客户端,多久刷新一次
    Location:让网页重新定位
    
    2 响应状态码(重点)

    200:请求响应成功

    3xx: 请求重定向

    • 重定向:你重新到我给你的新位置去;

​ 4xx:找不到资源 404

  • 资源不存在;

    5xx:服务器代码错误 500 502:网关错误

常见面试题:

当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

在我们输入网址按下回车后,DNS服务器会通过当前网址解析这一网址的ip;在查找到IP之后,浏览器会向服务器发起一个tcp连接请求,此请求包含三次握手,如下:
第一次握手:建立链接时,客户端浏览器会发送syn包到服务器,并进入SYS_SENT状态,等待服务器的确认;

第二次握手:服务器收到syn包后,必须确认客户端的syn,同时之间发送一个ack包,即是syn加ack包,此时服务器进入SYN_RECV状态,此时服务器被动打开后,接收到客户端的syn并且发送了ack时状态;

第三次握手:客户端接收到服务器的syn+ack包后,给服务器发送确认包ack,包发送完毕之后,客户端和服务器端进入ESTABLISHED(tcp连接成功)状态,完成了第三次握手。
当三次握手结束后客户端和服务器端就建立好了连接,此时tcp协议断开,开始访问服务器下的默认index.html页面,并调用该访问的资源文件,展示相应的内容。

5 Maven

为什么要学习这个技术

1.在Javaweb开发中,需要使用大量的jar包,我们手动导入;

2.如何能够让一个东西自动帮我导入和配置这个jar包

由此,Maven诞生了

5.1Maven项目架构管理工具

我们目前用来就是方便导入jar包的!

Maven的核心思想:约定大于配置

  • 有约束,不要去违反

Maven会规定好你该如何去编写我们的Java代码,必须按照这个规范来;

5.2 下载安装Maven

下载地址:https://maven.apache.org/

image-20210314200421113

下载完成后,解压即可;

建议:电脑上的所有环境都放在一个文件夹下,方便管理

5.3配置环境变量

在我们的系统环境变量中

配置如下配置:

  • M2_HOME maven目录下的bin目录 D:\Maven\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin

  • MAVEN_HOME maven的目录

    D:\Maven\apache-maven-3.6.3-bin\apache-maven-3.6.3

    image-20210314203422903

  • 在系统的path中配置MAVEN_HOME

  • %MAVEN_HOME%\bin

    image-20210314203457859

重启cmd查看

image-20210314203341737

测试Maven是否安装成功,保证必须配置完毕!

5.4阿里云镜像

  • 镜像:mirrors

    • 作用:加速我们的下载
  • 国内建议使用阿里云的镜像

     <mirror>
              <id>nexus-aliyun</id>
              <mirrorOf>*,! jeecg,!jeecg-snapshots</mirrorOf>
              <name>Nexus aliyun</name>
              <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
          </mirror>
    

5.5本地仓库

在本地的仓库,远程仓库;

建立一个本地的仓库:localRepository

配置:

 <localRepository>D:\Maven\apache-maven-3.6.3-bin\apache-maven-3.6.3\maven-repo</localRepository>

image-20210314205344896

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值