基本概念

  • web开发

    • web,网页的意思。

    • 静态web:html,css,提供给所有人看的数不会发生变化

    • 动态web:所有人看到的数据始终会发生变化,不同事件不同地点看到的信息不同。

    • 技术栈:Servlet/JSP,ASP,PHP

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

Web应用程序

  • Web应用程序:可以提供浏览器访问的程序;

  • 所有能访问到的页面或者资源,都在世界上的某一个角落的计算机上。

  • URL

  • 这个统一的web资源会放在同一个文件夹下,web应用程序--->Tomcat:服务器

  • 一个web应用由多个部份组成(静态,动态)

    • html、css、js

    • jsp、servlet

    • Java程序

    • jar包

    • 配置文件

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

静态Web

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

image-20210619223331326

  • 静态web的缺点

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

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

      • JavaScript[实际开发中,它用的最多]

      • VBScrippt

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

动态Web

  • 页面会动态展示:展示效果因人而异。

image-20210619223758308

  • 缺点

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

      • 停机维护

  • 优点

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

    • 它可以和数据库交互

image-20210619224157515

Web服务器讲解

技术讲解

  • ASP

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

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

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

    • 维护成本高!

    • IIS

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

    • php开发速度很快,功能很强大,跨平台,代码很简单()

    • 无法承载大访问量的情况

  • JSP/servlet

    • B/S:浏览器客户端

    • C/S:客户端和服务器

    • sun公司主推的B/S框架

    • 基于Java语言的(所有的大公司和一些开源的组件,都是Java写的)

    • 可以承载三高问题带来的影响。

    • 语法像ASP,ASP-->JSP,加强市场强度。

web服务器

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

  • IIS

    • 微软的;ASP...,Windows中自带的

  • Tomcat

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

      Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

      诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为10.0.5

Tomcat

安装tomcat

image-20210619231456052

image-20210619231520180

启动tomcat

  • 文件夹作用

image-20210619231629283

  • 启动

image-20210619231724588

  • 访问测试:http://localhost:8080/

  • 可能遇到的问题

    • Java环境变量没有配置

    • 闪退问题:需要配置兼容性

    • 乱码问题:配置问题

配置环境

image-20210619232018257

  • 可以配置启动的端口号

    • tomat默认端口号:8080

    • mysql:3306

    • http:80

    • https:443

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

<!-- A "Connector" using the shared thread pool-->

  • 可以配置主机的名称

    • 默认主机名为: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程序,可以直接访问。

      2. 没有:去DNS(全世界的域名都在这里)里面找,找到的话就返回找不到。

image-20210619233454504

发布一个web网站

  1. 将自己写的网站放到服务器中指定的wbe应用下的文件夹下(webapps)下就可以访问了。

image-20210619234111630

Http

什么是Http

  • 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

  • 文本:Html,字符串

  • 超文本:视频、图片、音乐、定位、地图...

  • 80

  • Https:安全的

  • 443

两个时代

  • http1.0

    • HTTP/1.0:客户点可以与web服务器连接后,只能获得一个web资源,断开连接

  • http2.0

    • HTTP/1.1:客户点可以与web服务器连接后,可以获得多个web资源

Http请求:

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

  • 请求行

    • 请求方式:POST/GET

    • GET:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效

    • POST:能够携带的参数没有限制,大小没有限制,不会再浏览器URL栏地址显示数据内容,安全,但是不搞笑

  • 消息头

Accept:告诉浏览器,它所只是的数据类型
Accept-Encoding:支持哪种编码格式  GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器他的语言环境
Accept-Control:缓存控制
Cache-Control:告诉浏览器,请求完成时断开还是连接
Host:主机

Http响应:

  • 服务器----响应----客户端

Cache-Control:private 缓存控制
Connection:keep-Alive 连接
Connection-Encoding:gzip 编码
Content-Type:text/html   类型

响应体

Accept:告诉浏览器,它所只是的数据类型
Accept-Encoding:支持哪种编码格式  GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器他的语言环境
Accept-Control:缓存控制
Cache-Control:告诉浏览器,请求完成时断开还是连接
Host:主机
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位

响应状态码

  • 200:代表请求响应成功

  • 3XX:请求重定向

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

  • 4XX:代表找不到请求资源

  • 5XX:服务器代码错误

    • 502:网关错误

常见面试题

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

Maven

  • 我为什么要学习这个技术

    1. 在javaWeb中,需要大量的jar包,需要我们手动导入。

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

      • 由此Maven诞生了。

Maven项目架构管理

  • 核心思想:约定大于配置

    • 有约束,不要去违反

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

下载安装Maven

官方网址: https://maven.apache.org/

image-20210620124711307

image-20210620124650524

下载后解压即可

配置环境变量

在我们系统环境中配置

  • M2_HOME 路径配置Maven目录下的bin目录

  • MAVEN_HOME 路径配置Maven目录

  • 在系统的path中配置 %MAVEN_HOME%\bin

image-20210620125535270

配置阿里云镜像

  • 镜像:mirrors

    • 作用:加速我们的下载

  • 在maven目录下conf目录下的settings文件里面添加mirror的配置

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/repository/central/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

本地仓库

建立一个仓库

 <localRepository>D:\idea\apache-maven-3.8.1\maven-repo</localRepository>
  • 在settings中添加

image-20210620135140820

 

 



posted on 2021-06-20 23:06  阿滨滨  阅读(103)  评论(0)    收藏  举报