一、C/S与B/S架构
- C/S 客户端/服务器端
- 用户本地有客户端,远程有服务器端
- 优点:用户体验好
- 缺点:开发部署 安装维护麻烦
- B/S 浏览器端/服务器端
- 通过浏览器浏览不同的网址(URL),访问不同的服务器端程序
- 优点:开发 安装 部署 维护简单
- 缺点:若应用过大,用户体验可能会受到影响
- 对硬件要求过高
二、HTML标签
- 表单
form- 属性:
action:指定提交数据URLmethod:指定提交方式get:
请求参数在地址栏中显示,参数大小有限制,不太安全post:
请求参数不在地址栏中显示,参数大小没限制,比较安全
表单中数据想要被提交,必须指定name属性
- 表单项标签
input:通过type属性,改变样式text: placeholder默认提示信息,输入内容后会清空password:密码框radio:单选框- 多个单选框name属性值需统一
- 给每个单选框提供value属性
- checked为默认选择
checkbox:复选框file:hidden:隐藏域,用于提交一些信息- 按钮:
botton:普通按钮submit:提交按钮image:图片按钮
label:指定输入项的文字描述信息label的for属性一般会和input的id属性值相对应应,点击label区域,会让input输入框获取焦点
select:下拉列表option
textarea:文本域cows指定列数rows指定行数
- 属性:
三、CSS
- CSS语法
- 格式
选择器{ 属性名:属性值; 属性名:属性值;}
- 格式
- 选择器(基础)
- ID选择器
#ID属性值{} - 类选择器 .
class属性值{} - 元素选择器
标签名称{}
- ID选择器
- 选择器(扩展)
- 所有元素
*{} - 并集选择
选择器1,选择器2{} - 子选择器
选择器1 选择器2{} - 父选择器 筛选子选择器2的父选择器1
选择器1>选择器2{} - 属性选择器
元素名称[属性名 = “属性值”]{} - 伪类选择器
元素:状态{}<a>状态link初始化状态hover鼠标悬停visited已访问active正在访问
- 所有元素
四
七、Tomcat web服务器软件
- 下载 安装
- 打开终端,输入以下命令 Library/Tomcat/bin/startup.sh,
- 浏览器中输入localhost:8080,查看效果
- 关闭 shutdown.sh 或 Ctrl+C
- 部署项目
- 直接将项目放入 webapps目录下,或打包成war包
- 在conf\Catalina\localhost创建任意名称的xml文件,内容为:<Context docBase = "项目存放路径” />;xml文件名称为虚拟目录
八、Servlet
- 概念:运行在服务器端的小程序
- 是一个接口,定义了java类被浏览器访问到的规则
- 使用时自定义一个类,实现servlet接口,复写方法
- 执行原理
- 客户端发送请求后,解析请求URL路径,获取servlet资源路径
- 查找web.xml文件,查找
<url-pattern>标签体内容 - 查找对应
<servlet-class>全类名 - tomcat将字节码文件加载进内存,并创建其对象
- 调用方法
- 生命周期
- init方法:被创建,只执行一次
- 在
<servlet>标签下可配置创建时机- 第一次被访问时
<load-on-startup>的值为负数
- 在服务器启动时创建
<load-on-startup>为0或正整数
- 第一次被访问时
- 在
- init方法:被创建,只执行一次
- Servlet体系结构
- Servlet – 接口
- GenericServlet – 抽象类
- 将Servlet接口中Service()方法作为抽象,其他方法默认空实现。
- HttpServlet – 抽象类
- 对HTTP协议的一种封装,简化操作。复写doGet、doPost方法
- Servlet相关配置
- urlpartten:Servlet访问路径,可定义多个访问路径@WebServlet({"/demo1","/demo2","/demo3"})
- /xxx:路径匹配
- /xxx/xxx:多层路径目录结构
- *.xxx 扩展名匹配
- urlpartten:Servlet访问路径,可定义多个访问路径@WebServlet({"/demo1","/demo2","/demo3"})
九、HTTP
- 概念:超文本传输协议
- 传输协议:定义了客户端和服务器端通信时,发送数据的格式
- 基于TCP/IP传输协议,默认端口号为80,基于请求/响应模型(一次请求对应一次响应),无状态的(每次请求相互独立,不能交互数据)
- 历史版本:
- 1.0:每一次请求响应都会建立新的连接
- 1.1:复用连接
- 请求消息数据格式
- 请求行
- 请求方式 请求url 请求协议/版本
GET /login.html HTTP/1.1
- 请求方式 请求url 请求协议/版本
- 请求头
- 请求空行
- 请求体
- 封装POST请求消息的请求参数
- 请求行
十、Request
- request对象和response对象的原理
- request和response对象是由服务器创建的
- request对象用于获取请求消息,response对象用于设置响应消息
- request对象继承体系结构:
ServletRequest – 接口
| 继承
HttpServletRequest – 接口
| 实现
org.apache.catalina.connector.RequestFacade 类(tomcat编写) - request功能:
-
获取请求消息数据
- 获取请求行数据
- GET /day08/demo1?name=zhangsan HTTP/1.1
- 方法:
- 获取请求方式 :GET
- String getMethod()
- 获取虚拟目录:/day08
- String getContextPath()
- 获取Servlet路径: /demo1
- String getServletPath()
- 获取get方式请求参数:name=zhangsan
- String getQueryString()
- 获取请求URI:/day08/demo1
- String getRequestURI(): /day08/demo1
- StringBuffer getRequestURL(): http://localhost/day08/demo1
- URL:统一资源定位符 : http://localhost/day08/demo1 中华人民共和国
- URI:统一资源标识符 : /day08/demo1 共和国 (URI>URL)
- 获取协议及版本:HTTP/1.1
- String getProtocol()
- 获取客户机的IP地址:
- String getRemoteAddr()
- 获取请求方式 :GET
- 获取请求行数据
-
获取请求头数据
- 方法:
- (*)String getHeader(String name):通过请求头的名称获取请求头的值
- Enumeration getHeaderNames():获取所有的请求头名称
- 方法:
-
获取请求体数据:
- 请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数
- 步骤:
-
获取流对象
- BufferedReader getReader():获取字符输入流,只能操作字符数据
- ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据
- 在文件上传知识点后讲解
-
再从流对象中拿数据
-
-
本文深入探讨了C/S架构和B/S架构的特点与区别,包括它们的优缺点、应用场景,以及HTML表单、CSS样式等前端技术的介绍。同时,文章还介绍了Tomcat服务器的使用方法,Servlet的工作原理和配置,以及HTTP协议的基础知识。
1674

被折叠的 条评论
为什么被折叠?



