JavaWeb复习01、02

CH01概述与基础知识

Web简介

Web与互联网的关系

互联网是基础设施,Web是互联网的一项服务(应用)。

互联网指20世纪末兴起的计算机网络模式,通过一系列网络协议实现计算机之间的网络通信,是一种网络基础设施。

web,万维网,是一种基于互联网进行访问的应用模式,主要要素包括HTTP、HTML、URL、浏览器等。

Web的发展:1.0,2.0,3.0

Web1.0:主要由平台、公司搭建服务器,创造内容,以静态或动态网页的形式向互联网用户提供信息,用户一般不参与内容的创造,少互动,web1.0也被称为 只读网络

Web2.0:平台、公司除了向用户提供内容外,更多的是提供平台来共享用户生产的内容,让用户可以交互,是可读可写的网络

**Web3.0:**近年来提出的一个模糊的概念,大致思想包括去中心化、无需许可/审核,用户拥有内容,原生支付等

Web应用程序的工作原理

请求——响应模式

​ 客户端把请求发送到服务器端的Web应用程序,Web应用程序接受请求后进行相关处理,把客户端请求的资源以文本、图片、网页等形式,作为响应返回到客户端

B/S和C/S

​ 由于解析HTML文件一般为浏览器,所以将这种架构称为B/S架构

​ C/S架构:客户端/服务器

Web服务器

​ 一般来说指安装了Web服务器应用的物理主机。Web服务器主要功能包括:处理HTTP协议栈,文件系统映射I/O、多线程处理请求/响应、日志记录、代理服务等。常用的软件有Apache、Nginx等

Web的三个基础技术

HTML

HTTP

​ **HTTP请求:**包括请求行,请求头,请求体:

​ 请求行包括:请求方法、资源路径、协议/版本

​ HTTP1.1规定有7种请求方法,get和post常用于Web应用

​ **HTTP响应:**响应行,响应头,响应体:

​ 响应行包括:协议/版本、状态码和状态码描述三部分

​ 响应头包括响应的相关描述,最重要的是内容类型Content-Type

​ 响应体一般为HTML网页

​ **HTTP请求类型:**7种请求方法:

请求方法 用途
get 从服务器获取资源
post 向服务器提交实体内容
put 向服务器传输文件
delete 请求删除服务器上的资源
head 只获取服务器响应头的头部
options 询问服务器支持的请求方法
trace 请求跟踪路径

​ HTTP响应:

​ 常用的响应状态码:

HTTP状态码 含义
200 请求成功
201 请求成功并在服务器上创建新资源
202 请求被接受但未处理完成
204 请求成功,但未发布任何新内容
404 请求的资源不可用
500 服务器内部发生错误
501 服务器不支持完成请求所需功能
503 服务器过载,不能对请求进行服务

​ 常用的内容类型Content-Type:

描述 MIME
网页 text/html
字符串 text/plain
pdf application/pdf
视频 video/quicktime
图片 image/jpeg
压缩文件 application/x-zip
应用程序 applicatiion/java

URL&URI

​ **URL:**统一资源定位符:

​ 协议,指定和服务器的通信方式+主机,可以是ip地址或能经dns解析的主机名+资源路径和文件名+参数,以?开始,多个参数通过&连接

​ **URI:**统一资源表示符:

​ URL是URI的子集,URI还在进一步研究当中,方向是弥补url的缺点

CH02 Servlet基础

Web服务器和Web容器

​ Web服务器:

​ 一般来说指安装了Web服务器应用的物理主机。Web服务器主要功能包括:处理HTTP协议栈,文件系统映射I/O、多线程处理请求/响应、日志记录、代理服务等。常用的软件有Apache、Nginx等。

​ Web容器:

​ 给web应用的服务的程序提供运行环境的容器称为Web容器。常见的Web容器有Tomcat、JBoss、IIS等。

​ 主要功能包括通信支持、生命周期管理和多线程支持等

Tomcat

Tomcat概念

Tomcat准确定位为:JavaWeb容器+Web服务器。

作为Web服务器,Tomcat能完成Apache的部分功能,如实现HTTP协议、处理,响应请求等,默认在8080端口监听。

作为JavaWeb容器,Tomcat负责编译、运行、部署Servlet、jsp,也叫servlet容器。

Tomcat目录结构

  • **bin目录:**可执行程序,包括启动和关闭的程序startup.sh和shutdown.sh
  • **conf目录:**配置文件,包括核心配置文件server.xml和context.xml
  • **lib目录:**库文件,包括编写Servlets必须的servlet-api.jar和jsp-api.jar
  • **webapps目录:**Web应用程序,每个Web应用程序都有一个目录,名称映射根路径

XML

概念

**xml:**可扩展标记语言

xml是目前互联网中数据描述、存储和表达的事实标准,xml文件为纯文本文档,被设计为简单、通用、自我描述。

xml和html同属标记类语言,主要异同有:

  • 都使用标记进行数据描述,都是单根树型结构
  • sml标记为自定义,html有语法限定
  • xml主要用于数据存储,核心是数据内容,html则是展现数据。

语法和格式要求

一个xml文档由两部分组成:声明和文档元素

  • 声明必须位于第一行,用于设定文档的编码、版本等信息
  • 文档元素由一个单根的树形自定义标记结构组成
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8" ?>
<movies>
<movie type="冒险片">
<title>空中监狱</title>
<rating>家长指引</rating>
</movie>
</movies>

Servlet

Servlet技术的核心是javax.servlet.Servlet接口,所有的Servlet类必须直接或间接实现Servlet接口。

Servelt容器负责加载和调用具体的Servlet类,每一个具体的Servlet类都是单例模式

其中init、service、destroy三个方法是生命周期方法。

另外两个非生命周期方法:getServletInfo返回servlet的描述信息,getServletConfig返回Servlet配置信息。

Servlet的生命周期

  • Servlet的生命周期包括加载、实例化、处理客户端请求和销毁。
  • 当有请求到达时,Tomcat容器负责加载Servlet,然后调用init()方法进行初始化操作,紧接着开启一个service()方法线程进行处理请求,当所有的service()线程均执行完成后,Tomcat容器垃圾回收机制调用destroy()方式销毁Servlet。