Http协议:超文本传输[服务器、客户端]协议
请求:
请求行:请求提交方式[get/post]
请求的地址URI
请求头:请求的客户端信息
map
请求体:提交的请求参数 - post
[get提交参数,在URI中?]
响应:
响应行:响应状态码
200 正常
304 缓存
404 not found 资源未找到
500 Exception
302 重定向
响应头:Map 服务器信息
响应体:响应内容[页面、JSON]
Tomcat:web应用服务器 - 软件 port:8080
web应用:动态网络资源
Java代码完成的可以在浏览器上运行的应用程序
部署 在web应用服务器上的
JavaSE - JDK - rt.jar
JavaEE - Servlet/JSP - web应用服务器 jar
Tomcat - apache 纯Java写 开源 免费
bin:命令、工具
startup bat sh
./startup.sh
shutdown
lib:类库 jar
servlet-api
jsp-api
conf:配置文件
server.xml - 服务器配置
web.xml - tomcat中所有的web应用,不能修改
webapps:web应用 多个
目录/文件[html、css、js、.class、jar…]
work:工作目录
jsp 翻译文件
temp:临时文件
logs:日志
backup:备份
web应用:webapps里面的目录
根目录
|- web静态资源
html\css\js\图片…
|- WEB-INF - 目录是受保护的[客户端不能直接访问]
|- web.xml - 当前web应用配置信息
schame 约束
|- classes - 类路径 - src源码编译过来
|- lib - 库 jar[mysql、c3p0、dbutils]
|- META-INF 元信息
web工程:eclipse 代码
src: 资源目录
java代码、配置文件
JRE System Library:jdk 类库
Apache Tomcat v8.5:tomcat类库
build: 类路径 - 工程
classes
src源代码编译后的文件
WebContent/WebRoot:web应用根目录
web静态资源
META-INF
WEB-INF
|- lib
|- web.xml - 服务器启动时就会读取
服务器启动完成后,检查控制台有没有报错
1.自定义类,实现Servlet接口
2.着重实现service方法
3.到web.xml文件中注册Servlet
4.访问测试:
http://localhost:8080/web01/a/hi
Servlet生命周期:
init service destroy
什么时候创建?
默认第一次接收请求时创建
可以设置为服务器开启时创建
10
什么时候销毁?
服务器关闭销毁
一共有23种设计模式
单例模式:
应用执行过程当中,只有一个对象的模式,叫做单例模式
懒汉模式、饿汉模式
工厂模式:简单工厂、抽象工厂、工厂方法
结合反射
spring
装饰者模式
代理模式:spring
单例模式:
整个应用运行过程中,只有一个对象生成
1.构造器私有
2.提供可以获得对象的静态方法
3.保证对象只new一次,将对象设置为static的
懒汉:用的时候再创建
public class Singleton {
// 属性
int a;
// 方法
// 1.不能直接new,私有化构造器
private Singleton() {
}
// 类加载时,对象就已经创建好 - 饿汉模式
private static Singleton single = new Singleton();
public static Singleton print() {
return single;
}
**饿汉:加载时直接创建**
public class Singleton {
// 属性
int a;
// 方法
// 1.不能直接new,私有化构造器
private Singleton() {
}
//初始化私有静态single
private static Singleton single = null;
public static Singleton print() {
//锁住线程保证不被多次创建
synchronized (single) {
//只有不存在的时候才能new
if (single == null) {
single = new Singleton();
}
}
return single;
}
}