1. html:全称为超文本标记语言。是通过标记和子标记来描述网页内容,超文本的含义为在网页中描述的不只是文本数据,还可以通过一系列标记去链接各式各样的资源,包括图片,音频,css,js,等,当客服端在访问网页时,除了要下载文本数据,还需要通过网页中描述的链接地址,去下载各式各样的资源文件。才能让网页正确显示。
2. 工厂模式:将对象的创建和对象的使用分开进行,其目的是解耦
3. http:超文本传输协议,遵循请求/响应模型,端口一般为80
4. http协议是一种无状态的协议,当客户端和服务器之间完成了数据交互之后,链接会断开,以释放服务器的内存资源,这样服务器就无法保存客服端的状态,会以为每次请求的用户都是新用户。
5. http处理流程:第一步: 客服端和web服务器产生连接,第二步:客服端发送http请求,第三步:生成http响应回发,第四步:关闭连接
##http的请求信息分为四部分:
- 请求行:描述请求方式,请求的URL。http协议的版本
- 请求头:以键值对方式描述客户端的状态
- 空行:表示请求头的结束合消息体的开始。
- 消息体(只针对post):描述客户端发送给服务器的表单数据。
MIME类型:用于描述客户端和服务器之间交互内容类型,客户端可以根据MIME类型来决定以什么应用程序来打开和执行。
- text/html:网页格式数据
- image/jpeg:图片格式数据
- text/xml:XML格式数据
http的响应信息分四部分:
- 状态行:描述http协议版本、状态码、状态描述
- 响应头:以键值对方式描述服务器相关的状态
- 空行:表示响应头的结束和消息体的开始
- 消息体:描述服务器发送给客服端的内容
传统的web服务器产生响应时,只能产生静态的html信息。极大的影响了响应信息的灵活性,解决方案是,在web服务器之后,加上辅助应用,辅助应用可以将请求信息处理后,以数据库为介质保存处理结果,然后动态产生响应信息。
CGI称为通用网关接口,他是辅助应用的一种解决方案,可以用多种语言编写,当客户端向服务器发送请求后,会开启外部程序来处理该请求,由于每个外部程序是进程,每次开启都会占用独立内存空间,所以,会极大的耗费服务器的内存资源,也不能接收太多的请求
Java是利用web容器+servlet方式实现辅助应用,由web容器做一些底层操作,比如:流的解析,线程的控制,数据的封装等。同时,预留Servlet借口,交给开发者书写业务逻辑,这样开发者就可以将主要精力放在业务实现上,而不用为底层操作编写代码,同时,web容器利用多线程解决多任务,可以同时接收更多的请求。
容器对Servlet的支持包括:
1. 通信支持:将请求信息和响应信息封装成请求对象和响应对象
2. servlet生命周期管理:产生,销毁并调用servlet相关的方法
3. 多线程支持:线程创建,线程启动,线程运行,线程同步
4. jsp支持:jsp引擎编写
5. 处理安全性
web容器的作用:用于给处于容器中的应用程序组件(servlet、jsp)提供一个环境,使servlet、jsp直接跟容器中的环境变量交互,这样,我们就可以吧注意力放在servlet实现业务逻辑上,而不必关注其系统上。
Servlet定义了一个容器必须实现的标准功能。 容器的实现:
- Tomcat
- Jboss
- WebLogic
- WebSphere
- Oracle9i AS
tomcat 的目录结构:
- bin:用于存放tomcat中的可执行文件,其中startup.bat用于启动tomcat。shutdown.bat用于关闭tomcat。
- conf:存放tomcat的配置文件。其中server.xml用于tomcat服务器相关的配置。web.xml用于tomcat应用相关的配置。
- server.xml
<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>
描述tomcat启动端口
- -<Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps">
appBase描述tomcat中存放web应用程序的目录
unpackWARs当web应用程序目录中有war文件,则自动解压
- lib :用于存放tomcat运行时使用的jar包。其中servlet-api.jar是tomcat根据Servlet规范提供的实现类,所生成的jar文件
- logs:用于存放日志文件。
- temp:用于存放临时文件。
- webapps:用于存放和部署web应用程序的目录。
- work:用于jsp支持web服务器、web容器和web应用服务器的区别:
- web服务器:主要作用于开启服务器,监听端口,接收请求,产生响应,只是只能产生静态html响应信息,极大影响响应信息灵活性
- web容器:是辅助应用的一种解决方案,允许将请求信息处理完成后,动态产生响应信息
- web应用服务器:web服务器+web容器合称web应用服务器