## Servlet简介
* Servlet是服务器小应用程序。
* 用来完成B/S架构下,客户端请求的响应处理。
* 平台独立,性能优良,能以线程方式运行。
* Servlet API为Servlet提供了统一的编程接口
* Servlet 一般在容器中运行
* 常见的 Servlet容器:
* Tomcat
## 安装tomcat
> 请观看上课视频
## tomcat目录结构
* bin:该目录下存放的是二进制可执行文件
* conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:
* server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等;
* tomcatusers.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;
* web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。
* context.xml:对所有应用的统一配置,通常我们不会去配置它。
* lib:Tomcat的类库,里面是一大堆jar文件。
* logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。
* temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!
* webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。
* work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!
## servlet运行原理
![](https://box.kancloud.cn/73c16c36cbb97af5680e44c89d655b6b_1435x806.gif)
## servlet执行过程和生命周期
![](https://box.kancloud.cn/d6b1b0f285228c7ad434fdcc70720e06_649x630.png)
## 加载和实例化serlet
1. 如果已配置自动装入选项,则在启动时自动载入。
2. 在服务器启动状态下,客户机首次向Servlet发出请求。
3. 重新装入Servlet时。
## servlet表单提交例子
## 服务器内部跳转(请求转发)和重定向(外部跳转)
1. 内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象, 也可以获取到请求中的属性和参数。
2. 外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性。
3. 内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化。
4. 内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。
![](https://box.kancloud.cn/e2528c4c1f559bc1b1bb27f6dd4c0334_612x464.png)
- 我们在做什么?
- 为什么是内存?
- 我们实际上在做什么
- HTML基础
- Web原理和HTML简介
- Web原理
- HTML概念
- HTML标签
- 标签
- HTML固定基本结构
- 第一个HTML页面
- 工具的使用
- 标题
- <hr>和<p>标签
- 路径概念
- 超级链接
- 列表
- 表格
- 表单的设计与使用
- 表单域的原理
- 文本框和密码框
- 单选框和复选框
- 下拉列表框
- 多行文本和上传
- 提交按钮和重置按钮
- 为CODING COFFEE加入在线购买页
- HTML5
- 定位服务
- CSS
- CSS的基础使用
- CSS简介
- CSS样式规则和加载方式
- 选择器
- 伪类
- CSS优先级和层叠
- CSS颜色
- 背景图片
- 文本
- CSS列表
- DIV+CSS布局
- 内联元素和区块元素介绍
- Display属性
- 盒子模型的边距和边框
- 浮动和清除浮动
- 用Position属性进行定位
- 专题:居中和对齐
- flex布局
- CSS新特性
- CSS3边框
- 动画
- Javascript
- HelloWorld
- 语句与变量
- 一切皆对象
- 标识符、注释和区块
- 基本数据类型和引用数据类型
- 语句
- 条件语句
- 循环语句
- 标准库
- Array对象
- Number对象
- String对象
- JSON对象
- Math对象
- Date对象
- 数据类型
- typeof运算符
- number
- 字符串
- 布尔类型
- 函数
- 数组
- Dom模型
- Dom和Dom节点
- 特征相关属性
- 节点对象方法
- Element对象
- Attribute对象
- Text节点和CSS操作
- 事件模型
- WebStorage
- BOM模型
- window对象
- 计时事件
- jQuery基础
- 认识jQuery
- jQuery对象和DOM对象
- jQuery选择器
- jQuery Dom操作
- 查找节点和创建节点
- 插入节点和删除节点
- 复制节点和替换节点
- 包裹节点和属性操作
- 样式操作
- 设置和获取HTML、文本和值
- 遍历节点和CSS操作
- jQuery 事件和动画
- 事件绑定与冒泡处理
- jQuery动画
- jQuery 插件
- validate 插件
- jQuery与Ajax的应用
- Ajax简介
- jquery中的Ajax
- Vue.js基础与实战
- HelloWorld
- v-for、v-on、v-model
- 组件化编程
- 生命周期函数(钩子)
- 计算属性、侦听器、方法
- class与style绑定
- 关于组件的一些问题
- 单项数据流和Prop验证
- 项目环境搭建
- 关于git的一些情况
- JavaWeb教程
- 对象和类的概念
- 对象和类的介绍
- 对象和类的介绍2
- 类的继承与权限控制
- Object类
- 多态的内容
- 容器
- 流
- Servlet
- Servlet练习
- Session和Cookie
- JSP
- 内置对象
- JSTL和EL
- JDBC
- 文件上传和下载
- 过滤器
- 数据库
- 数据库介绍
- MySQL的安装
- SQL
- 表基本操作
- 修改数据语句
- 数据检索操作
- 多表数据操作
- 表结构设计
- 综合应用
- 作业与练习
- Maven教程
- Maven安装配置