JavaWeb学习笔记【1】:基本知识


前言

因为小学期需要使用实现PC端数据的交互,因此学习JavaWeb的相关知识,希望借助Tomcat以实现需要的功能。


1. JavaWeb

1.1. 基本概念

1.1.1. web开发

  • 静态web
    • html,css
    • 提供给所有人看的数据始终不会发生变化!
  • 动态web
    • 几乎是所有的网站
    • 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!
    • 技术栈:Servlet / JSP,ASP,PHP
    • 在Java中,动态web资源开发的技术统称为JavaWeb

1.1.2. web应用程序

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

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

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

1.2. Web

1.2.1. 静态web

*.html & *.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取
在这里插入图片描述

静态web存在的缺点

  • Web页面无法动态更新,所有用户看到都是同一个页面
    • 轮播图,点击特效:伪动态
    • JavaScript [实际开发中,它用的最多]
    • VBScript
  • 它无法和数据库交互(数据无法持久化,用户无法交互)

1.2.2. 动态web

页面会动态展示: “Web的页面展示的效果因人而异”
在这里插入图片描述

  • 缺点:
    加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布
    • 停机维护
  • 优点:
    • Web页面可以动态更新,所有用户看到都不是同一个页面
    • 它可以与数据库交互(数据持久化:注册,商品信息,用户信息…)

1.3. Web服务器

1.3.1. 技术讲解

  • ASP
    • 微软:国内最早流行的就是ASP
    • 在HTML中嵌入了VB的脚本,ASP + COM
    • 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其换乱
    • 维护成本高
    • C#
    • IIS
  • php
    • PHP开发速度很快,功能很强大,跨平台,代码很简单 (70%,WP)
    • 无法承载大访问量的情况(局限性)
  • JSP / Servlet
    • B/S:浏览和服务器
    • C/S:客户端和服务器
      • sun公司主推的B/S架构
      • 基于Java语言的 (所有的大公司,或者一些开源的组件,都是用Java写的)
      • 可以承载三高(高并发、高可用、高性能)问题带来的影响
      • 语法像ASP,ASP --> JSP,加强市场强度

1.3.2. web服务器

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

  • IIS
    • 微软的
    • ASP,Windows中自带
  • Tomcat
    • Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
    • Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人 来说,它是最佳的选择
    • Tomcat 实际上运行JSP页面和Servlet

2. Tomcat启动和配置

2.1. 文件夹作用

在这里插入图片描述

  • bin:启动、关闭的脚本文件
  • conf:配置文件
  • lib:依赖的jar包
  • log:日志
  • webapps:存放动态网站
  • work:工作目录

2.2. 启动Tomcat

  • 定位到bin文件夹
    博主使用brew安装的tomcat,所以路径与网上大多数博客的路径不一致。如果没有brew也可以直接从官网上下载对应的tar.gz文件后,将文件移入Library。
cd /usr/local/Cellar/tomcat/10.0.22/libexec/bin
./startup.sh
  • 使用catalina
catalina -h
catalina start

-h:查看可以使用的指令
start:运行Tomcat
在这里插入图片描述
等终端出现 Tomcat started. 的消息时,打开空白网页,输入localhost:8080即可进行访问测试。
在这里插入图片描述

2.3. 退出Tomcat

  • 定位到bin文件夹
cd /usr/local/Cellar/tomcat/10.0.22/libexec/bin
./shutdown.sh
  • 使用catalina
catalina -h
catalina stop

在这里插入图片描述

2.4. 配置

找到config路径下的 server.xml ,即服务器的核心配置文件。
在这里插入图片描述

2.4.1. 配置启动的端口号

找到对应的 ** Connector** 标签,修改port的值,即可修改端口。
在这里插入图片描述
如果修改port的值为8086,此时,需要输入的地址为:localhost:8086

  • 常见的默认端口号
    • tomcat: 8080
    • mysql: 3306
    • http: 80
    • https: 443

2.4.2. 配置主机的名称

找到引擎下面对应的 ** Host** 标签,修改name的值,即可修改主机。
在这里插入图片描述
如果修改name的值为 www.tomcat.com ,此时,需要输入的地址为:www.tomcat.com:8086

注意:

  • 需要修改的是 Engine 标签下的 Host 标签,而不是直接对Engine的defaultHost进行修改
  • 此时若输入修改后的域名,仍无法显示正确的网页,是因为此时还需要修改对应的系统驱动,添加ip地址到此主机名的映射才可以成功。尽量不要尝试,否则可能导致系统崩溃

2.5. 发布一个web网站

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

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

3. HTTP

3.1. 概念

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

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

Https:安全的HTTP

  • 443:默认端口

3.2. 两个时代

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

3.3. Http请求

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

3.3.1. 示例:百度

Request URL:https://www.baidu.com/ 请求地址 
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200 
Remote(远程) Address:14.215.177.39:443
Accept:text/html 
Accept-Encoding:gzip, deflate, br 
Accept-Language:zh-CN,zh;q=0.9 语言 
Cache-Control:max-age=0 
Connection:keep-alive

3.3.2. 请求行

请求行中的请求方式:GET
请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…

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

3.3.3. 消息头

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

3.4. Http响应

服务器---响应(Response) -----客户端

3.4.1. 示例:百度

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

3.4.2. 响应体

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

3.4.3. 响应状态码

  • 200:请求响应成功
  • 3xx:请求重定向
    • 重定向:重新到我指定的新位置
  • 4xx:找不到资源
    • 404:资源不存在
  • 5xx:服务器代码错误
    • 502:网关错误

4. Maven

学习原因:

  • 在Javaweb开发中,需要使用大量的jar包,我们手动去导入
  • 如何能够让一个东西自动帮我导入和配置这个jar包
    由此,Maven诞生了!

4.1. Maven项目架构管理工具

Maven的核心思想:约定大于配置
Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来

4.2. 配置Maven

可参考Mybatis学习笔记


错误记录

1. 500

当使用Tomcat10的时候,需要更改maven依赖
javax.servlet都改为jakarta.servlet
导入对应的依赖:

    <dependency>
      <groupId>jakarta.servlet.jsp</groupId>
      <artifactId>jakarta.servlet.jsp-api</artifactId>
      <version>3.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>5.0.0</version>
      <scope>provided</scope>
    </dependency>

总结

本文主要记载关于JavaWeb的预备知识,并记录通过IDEA实现JavaWeb的有关配置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzzyzh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值