1.B/S与C/S
1.1B/S
B/S结构(浏览器/服务器模式)是一种网络结构模式,也可以说三层C/S架构,类似于Taobao、京东大型应用。
特点:
- 维护成本相比较略低
- 无需在本地安装,如果需要更新,直接更新服务端的内容,客户端使用浏览器进行访问
- 可以支持广域网
- 依赖于HTML5/CSS3/JS...实现更加灵活的页面设计与开发
1.2C/S
C/S结构(客户端/服务器模式)是一种网络结构模式,类似于QQ、微信、Word软件。
特点:
- 维护成本高
- 在本地安装。如果需要更新,需要安装更新程序,还可能会造成更新失败
- 只能够在局域网内访问(管理系统)
- 界面开发不够灵活
2.HTTP(超文本传输协议)
HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传输协议。
HTTP协议是应用层协议,由请求和响应构成,是一个标准的个客户端和服务器模型。
2.1特点
- 支持客户/服务器模式,可以支持B/S结构。
- 通信速度很快。
- HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。
- 无连接是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面好处就是,如果后续的连接不需要之前提供的信息,响应就会比较快.而为了解决HTTP的无状态特性,出现了Cookie和Session技术。
2.2工作原理
客户端
- 向服务器发送请求
- 接收服务器返回的报文并解释成友善的信息供阅读
- 当用户在地址栏输入网址回车时,浏览器(一种客户端)会做如下处理:
- a.解析协议和域名。
- b.使用HTTP协议并创建请求报文向服务端发送请求。
- c.接收服务器返回的内容并展示给客户
服务端
服务器端在接收到客户端发送的请求后会开始处理请求。
服务器处理过程:服务器软件一直在监听端口是否有新的请求达到,如iis或者tomcat在建立web站点后,默认会一直监听80端口等待HTTP请求到达服务器。
a.建立连接:如果客户端已经打开道服务器的持久连接,则可以直接使用,否则客户端需要在服务器打开一条新的连接。
b.接收请求报文:连接上有数据到时,web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来。
c.处理请求:当请求被接收后,服务器便可以根据请求报文进行处理了。例如post方法中提出报文主体的数据并插入到数据库中。
d.访问资源:请求处理完后,比如web会根据数据生成一系列的HTML页面或图片等信息,此步骤将访问这些存储在服务器上的物理文件。
e.构建响应:web服务器在识别资源后,构造响应报文,响应报文包括:状态码,响应头,响应主体等内容。
f.发送响应:服务器将响应的数据发送给客户端机器。
g.记录日志:请求结束,服务器会在日志文件中记录一条请求日志。
2.3HTTP状态码
-
10x: 消息,指连接状态
-
20x: 成功
-
30x:重定向
-
40x:找不到资源【客户端错误】
-
50x:服务器错误
3.Tomcat
下载地址:https://tomcat.apache.org
解压下载好的目录结构
bin: 放置所有的可执行文件conf: 放置所有的配置文件lib: 放置所有的支持 jar 包logs: 日志文件temp: 临时文件存储目录webapps: 放置所有的 web 应用work: 放置被编译之后的 .class 文件
idea配置Tomcat
4.JSP基本语法
4.1注释
html注释(
在客户端是能够被看到的):<!-- -->
JSP注释(
无法在客户端是能够被看到的):<%-- --%>
<% //单行注释 %>
<% /** 多行注释 */ %>
4.2指令
<% @ page 属性 = “ 属性值 ” %> 代表着当前页面的属性设置
- contentType:页面的内容的类型(值:text/html; charset=utf-8)
- import:导入要用到的包
- language: 代表页面的编程语言
4.3小脚本
<%
%>
4.4表达式
<%= %>
4.5静态代码
指的页面中的所有静态代码(html\css\js\图片)
4.6声明(弃用)
<%!
方法
%>
5.JSP运行机制
- 在客户端第一次请求时,先对JSP进行翻译,生成Java文件。
- Java文件编译成class文件
- 最后执行
- JSP第一次执行速度较慢,从第二次开始,就直接运行已有的class文件,性能提升
- JSP配置改编,则服务器一定要重启
6.运行问题
6.1 404问题
- 服务器未启动
- 页面名称输入错误
- 将页面放在WEB-INF目录下,该目录是一个系统的配置目录,不能随意访问
- web应用未部署
6.2 500问题
- 服务器中代码错误,可以查看页面的错误信息结合idea中输出的信息判断错误出现的位置
7.JSP内置函数
JSP中有9个内置对象,最大的特点是能够直接使用,无需实例化。实例化过程被web容器完成了。
- page
- pageContext
- out
- config
- exception
- request
- response
- session
- application
7.1 request
request主要处理客户端的请求,常见方法有: