Web基础知识和Servlet
一. Web基础知识
1. 软件架构
- C/S:客户端/服务器端
- B/S:浏览器/服务器端
2. Web资源分类
- 静态资源:每个用户请求后响应的资源都相同,可以直接被浏览器解析,如
HTML,CSS,JavaScrip等
- 动态资源:不同用户请求后响应的资源可能不同,需要先转换为静态资源再返回给浏览器,如
Servlet/Jsp等
3. 网络通信三要素
- IP:计算机在互联网中的唯一标识
- 端口:应用程序在互联网中的唯一标识,取值范围为0~65536
- 传输协议:不同计算机传输数据时必须遵循的规则
- TCP协议:安全协议,三次握手,速度较慢
- UDP协议:不安全协议,速度较快
4. Web服务器软件
- 服务器软件:可以接收请求,处理请求,并产生响应的软件
- Web服务器软件:可以接收请求,处理请求,并产生响应的软件;还可以部署Web项目,使用户可以通过浏览器访问所部署的项目,如Tomcat
- 服务器:安装了服务器软件的计算机
二. Servlet
1. 概念
- Server applet,运行在服务器端的小程序,用户可以通过浏览器访问
2. 执行原理
- 当服务器接收到客户端浏览器的请求后,会解析请求的URL路径,获取访问的servlet的资源路径
- Tomcat查找
web.xml文件,是否有对应的url-pattern标签体内容
- 如果有,根据
servlet-name查找对应的servlet-class全类名
- 将对应的类的字节码文件加载进内存
- 创建其对象,并执行相应的方法
3. Servlet中的生命周期方法
void init(ServletConfig var1):servlet第一次被访问时执行此方法创建其对象,只执行一次,说明一个servlet在内存中只存在一个对象。loadOnStartup的值默认为-1,表示servlet第一次被访问时创建其对象;若将其值改为0或正整数,那么在服务器启动时就会执行此方法创建其对象。
void service(ServletRequest var1, ServletResponse var2):提供服务的方法,每次访问servlet时都会被执行。
void destroy():服务器正常关闭时,servlet被销毁之前,执行此方法释放资源,只执行一次。
4.Servlet的体系结构
- Servlet(接口)
void init(ServletConfig var1)
void service(ServletRequest var1, ServletResponse var2)
void destroy()
- GenericServlet(抽象类):将Servlet接口中的service方法作为抽象方法,其他方法做了空实现
- HttpServlet(抽象类:限制实例化):对Http协议进行了封装,自己定义的Servlet继承HttpServlet即可
5. IDEA中Java项目的目录结构
- 项目的根目录
src目录:存放自己所编写的代码源文件
web目录 :部署的Web应用的所在目录
WEB-INF目录
classes目录:放置字节码文件
lib目录:放置依赖的jar包
web.xml:Web项目的核心配置文件
- 工作空间项目:D:\学习资料\各科资料\JAVA\IdeaProjects\test2
- Tomcat部署的web项目:D:\学习资料\各科资料\JAVA\IdeaProjects\test2\out\artifacts\test2_war_exploded,对应着工作空间项目下的web目录下的所有资源

- IDEA项目中的src目录下的Java文件被编译后存放在Tomcat部署的web项目的
\WEB-INF\classes目录下
- WEB-INF目录下的资源不能被浏览器直接访问