javaweb
- html:全称为。超文本标记语言;通过标记和子标记来描述网页内容,超文本的含义为在网页中描述的不只是文本数据,还可以通过一系列标记去连接各式各样的资源,包括图片,音频,css,js等,当客户端在访问网页时,除了下载文本数据,还需要通过网页中描述的链接地址,去下载各式各样的资源文件,才能让网页正确显示
工厂模式 将对象的使用和创建分开进行,目的就是解耦
http协议
- 超文本传输协议
- 遵循请求、响应模型
- 无状态的协议,当客服端和服务器之间完成了数据交互之后,连接会断开,以释放服务器内存资源;这样服务器就无法保存客服端的状态,会认为每次请求都是新用户;
- 端口为80
http处理流程
- 客服端和服务器建立连接
- 客服端发送http请求
- 生成http响应回应
- 关闭连接
http请求信息
- 请求行,描述请求方式和URL,http协议版本
- 请求头,以键值对方式描述客服端状态
- 空行,标识请求头的结束和消息头的开始
- 消息体(只针对post),描述客服端发送给服务器的表单数据
MIME类型
- 用于描述客服端和服务器之间交互的数据类型
- 客服端可以根据MIME类型来决定什么应用程序来打开和执行;
- text/html:网页格式数据
- image/图片格式数据
- text/xml xml格式数据
http响应信息
- 状态行,描述http协议版本,状态码,状态描述
- 响应头,以键值对方式描述服务器的相关状态
- 空行,标识响应头的结束和消息体的开始
- 消息体,描述服务器发送给客服端的内容
辅组应用
- 传统的web服务器产生响应时,只能产生静态的html信息,极大影响响应信息的灵活性,解决方案是,在web服务器后加上辅组应用,辅助应用可以将请求信息处理以后,以数据库为介质保存处理结果,然后动态产生响应信息;
CGI
- 通用网关接口,它是辅助应用的一种解决方案。
- 可以用多种语言编写,当客服端向服务器发送请求后,会开启外部程序来处理该请求,由于每个外部程序是进程,每次开启都会占用独立内存空间,所以会极大的耗费服务器的内存资源,也不能接受太多的请求;
web容器
- java是利用web容器+servlet方式实现辅助应用,由web容器做一些底层操作,比如流的解析,线程的控制,数据的封装,同时预留servlet接口,交个开发者写业务逻辑,这样开发者就可以将主要精力放在业务开发实现上,而不用为底层操作编写代码,同时web容器利用多线程解决多任务,可以同时接受更多的请求;
web容器负责管理和运行servlet
- 容器对servlet的支持包括;
- 通信支持,将请求信息和响应信息封装成请求对象和响应d对象
- servlet生命周期管理,产生servlet和销毁servlet,并调用servlet的相关方法
- 多线程支持,线程创建,启动,运行,同步
- jsp支持,jsp引擎的编写
- 处理安全性
servlet规范
- tomcat
- jboss
- weblogic
- websphere
- oracle9i AS
java web 应用程序组成
- WEB-INF目录的内容不能被客服端直接访问,存放一些比较隐蔽的信息;
- WEB-INF–classes 存放开发者书写业务类编译生成的class文件
- WEB-INF–lib 用于存放web应用程序中使用的jar包
- WEB-INF–web.xml 用于web组件的注册
- *.html
- *.jpg
- *.css
- *.js
tomcat 目录结构
- bin目录用于存放tomacat中的可执行文件
- 其中startup.bat用于启动tomacat
- 其中shutdown.bat用于关闭tomacat
- conf用于存放tomacat的配置文件
- 其中server.xml用于tomacat服务器的相关配置,
<Host name="localhost" appBase="webapps"
unpackWARs=”true” autoDeploy=”true”>“
- appBase 描述tomacat中存放web程序的目录
- unpackWARs 当web应用程序目录中有war文件,则自动解压;
- web.xml用于tomacat中web应用相关的配置
- lib目录用于存放tomcat运行时所使用的jar包,其中serverlet-api.jar是根据tomcat根据serverlet规范提供的实现类
- logs 目录用于存放日志文件
- temp 目录用于存放临时文件
- webapps 用于存放web应用程序的目录
- work 用于jsp支持
web服务器 web容器 web应用服务器的区别
- web服务器的主要作用,开启服务器,坚听端口,接受请求,产生响应,只能产生静态的html响应信息,极大影响响应信息的灵活性;
- web容器是辅助应用的一中解决方案.将请求信息处理完成后,动态产生响应信息;
- web服务器+web容器,合称web应用服务器;
servlet
- api结构
- servlet业务接口 service方法
- serviceConfig 配置接口
- genericServelet 适配器类,实现了两个接口中大部分方法,但是没有实现service方法,该方法有genericServelet的子类根据自身协议特点实现
- httpservlet genericServelet的子类,专门针对http协议书写的子类,重写了service方法,根据请求方式的不同,分别调用doxx();