JavaWeb——基础知识

本文介绍了JavaWeb的基本概念,包括静态和动态web的区别,以及web应用程序的构成。讲解了Tomcat服务器的启动与配置,以及HTTP协议的工作原理。同时,阐述了学习Maven的原因和其作为项目管理工具的重要性,包括本地仓库设置和在IDEA中的使用。最后,分享了作者在自学后端技术过程中的体会,强调了独立思考和多资源学习的重要性。
摘要由CSDN通过智能技术生成

一、 JavaWeb基本知识

1.1 javaweb

  • 静态web

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

    • 电商网站,几乎所有的网站。
    • 每个人在不同的时间地点看到的信息各不相同
    • 技术栈LServelst,JSP,ASP,PHP

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

1.2 web应用程序

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

  • a.html,b.html…这些web资源都可以被外界访问,外界提供服务
  • 能在网络上访问到的任何界面,都存在于某一台计算机上
  • URL
  • 统一的web资源会放在同一个文件夹下,web应用程序—》Tomcat:服务器
  • 一个web应用有多个部分组成(静态web,动态web)
    • html,css,js
    • jsp,servlet
    • jar包
    • 配置文件(Properties)

web应用程序编写完毕以后,要想外界访问,需要一个服务器来统一管理

1.3 静态web

  • *.html, *.hml,都是网页后缀,如果服务器上一直存在这些东西,就可以直接进行获取。
    在这里插入图片描述
  • 静态web无法动态更新
  • 无法和数据库交互,数据无法持久化,用户无法交互

1.4、动态web

  • web页面展示的效果是动态的
    在这里插入图片描述
  • 缺点
    假如服务器的动态web资源出现了错误,就需要重新编写后台程序,重新发布。
  • 优点
    可以动态更新,用户看见的都是不同的页面
    可以于数据库交互(数据持久化:注册用户,商品信息,用户信息)
    在这里插入图片描述

二、web服务器

2.1 技术讲解

JSP/Servlet:
B/S:浏览和服务器
C/S:客户端/服务器

  • sun公司主推的B/S结构
  • 基于Java语言
  • 可承载三高问题带来的影响
  • 语法于APS类似

2.2 web服务器——tomcat

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

IIS;ASP…Windows中自带的
Tomcat
启动Tomcat:

  • 双击startup.bat
  • 命令行输入:startup

tomcat 核心配置文件
在这里插入图片描述

设置启动端口号

  • 默认端口号为8080
<Connector port="8080" redirectPort="8443" 
		   connectionTimeout="20000" protocol="HTTP/1.1"/>

配置主机名称:默认为:localhost=>107.0.0.1
默认网站应用存放位置:webapps
在这里插入图片描述
网站访问流程:
1、检查本机配置文件C:\Windows\System32\drivers\etc\hosts下有没有域名映射
2、有直接返回对应的ip地址,没有就去DNS服务器找,找不到就返回找不到
在这里插入图片描述

2.3 发布一个web网站

在web服务器文件夹中放入自建的网站文件,index.html,即可以立马新建一个空网站
在这里插入图片描述
网站应该有的结构

  ROOT
	  - webname:网站目录名
	  -- WEB-INF 
	       --- classes: java文件
	       --- lib: web应用依赖的jar包
	       --- web.xml: 网站配置文件
	  -- index.html 默认的网站首页
	  -- static
	       --- css
             --- style.css
           --- js
           --- img
           --- ...

三、http——超文本协议

http是一个简单的请求-响应协议,通常运行在TCP之上

  • 文本:html,字符串,…
  • 超文本:图片,音乐,视频,定位,地图…
  • 请求端口 80

https:安全的

  • http 1.0:客户端可以与web服务器连接,一次只能请求一个web资源,断开连接
  • http 2.0:客户端可以与web服务器连接,获得多个web资源。

3.1 Http请求

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

百度请求:

Request URL: https://www.baidu.com/   请求地址
Request Method: GET   get/post方法
Status Code: 200 OK   状态码
Remote Address: 14.215.177.38:443  远程地址
Referrer Policy: strict-origin-when-cross-origin
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,ja;q=0.5   语言设置
Cache-Control: max-age=0
Connection: keep-alive

1、请求行

  • 请求行中的请求方式: GET
  • 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
    get:请求能够携带的参数比较少,大小有限制,在浏览器地址栏显示数据内容,不安全,但效率高
    post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器地址栏显示数据,安全,但效率低

2、消息头

Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
HOST:主机.../..

3.2 Http响应

  • 服务器—响应—客户端

百度响应:

Cache-Control: private          缓存控制
Connection: keep-alive          连接
Content-Encoding: gzip          编码
Content-Type: text/html;charset=utf-8    类型

1、响应体

Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
HOST:主机.../..
Refrush:告诉客户端刷新时隔
Location:网页重定位

2、响应状态码

详细状态码

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

当浏览器地址栏输入地址并回车的一瞬间,到页面展示,发生了什么?

四、Maven

Maven教程
在这里插入图片描述

4.1 学习Maven的原因

  • 在学习Java时,,需要使用大量的jar包,手动导入是很麻烦的
  • maven能自动导入和配置项目开发需要的jar包

4.2 Maven项目架构管理工具

核心思想:约定大于配置

  • 有约束就不用违反

maven会规定好如何编写Java代码,必须按照该规范来。
maven官网
在这里插入图片描述
下载标记的内容,下载完成后解压即可

  • 配置环境
    在系统变量中配置M2_HOME,MAVEN_HOME在这里插入图片描述在系统path中配置MAVEN_HOME
    在这里插入图片描述
    配置环境完毕
    在这里插入图片描述

4.3 阿里云镜像

mirror作用:加速下载
国内建议使用阿里云镜像
配置阿里云镜像
在maven–conf–setting.xml文件里加入如下代码

    <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>

在这里插入图片描述

4.4 本地仓库

在本地的仓库:localRepository

建立一个本地仓库

在maven目录下新建maven-repo文件夹
在这里插入图片描述
将本地仓库地址(上面maven-repo文件夹地址)加到配置文件中
在这里插入图片描述

<localRepository>/path/to/local/repo</localRepository>

4.5 在IDEA中使用Maven

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述等待项目加载
在这里插入图片描述
观察maven仓库中多了一些东西

ideal中的maven设置
项目创建成功后要注意看一眼maven配置
在这里插入图片描述

4.6 创建一个普通的Maven项目

一个干净的maven目录
在这里插入图片描述

4.7 IDEA中标记文件夹

方式一:选中文件夹–>右键
在这里插入图片描述
方式二:
在这里插入图片描述
在这里插入图片描述

4.8 在IDEA中配置TomCat

在这里插入图片描述
在这里插入图片描述警告出现原因,访问网站需要指定文件夹文件,必须需要手动配置
修复警告
在这里插入图片描述
在这里插入图片描述
启动tomcat
在这里插入图片描述
在这里插入图片描述

4.9 pom文件

pom.xml是maven的核心配置文件
在这里插入图片描述
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.fuyaling</groupId>
  <artifactId>mavenProject-01</artifactId>
  <version>1.0-SNAPSHOT</version>
<!--项目打包方式
jar:Java应用
war:javaweb应用-->
  <packaging>war</packaging>
<!--名称-->
  <name>mavenProject-01 Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
<!--配置-->
  <properties>
<!--项目的默认构建编码-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
<!--项目依赖-->
  <dependencies>
    <dependency>
<!--具体依赖的jar包配置文件-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
<!--项目构建用的东西可以删除-->
  <build>
    <finalName>mavenProject-01</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

自学后端到目前的体会

有想过要不要单独为当前的学习写一篇博客,但是有点浪费时间,但的确有想说的,以上包括之前的部分视频是在B站上看狂神说视频时的笔记,大概与视频中相同,但写到此觉得,学技术,不能完完全全依赖于某一个老师和视频,这会导致一旦遇到听不懂的地方就会混乱好久,还是需要结合书籍,教程网站,多汲取他人经验来学习,看视频之前最好能看一点书上的知识,像Sevlet是什么,怎么学这种最好先在脑子里有自己的初步理解。所以之后的博客不会完完全全照搬视频中的笔记,多多少少会结合其他地方的知识和自己的理解。还有好多话,有同学想听的话留言交流吧。
(以上全是目前对自己的学习的一个反思,只是个例,仅为参考)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值