一、C/S、B/S架构
- C/S架构
Client/Server,客户端/服务器架构。
例: QQ、飞信
- B/S架构
Browser/Server,浏览器/服务器架构。 例:网页
二、Web访问中的角色与协议
Web访问整个过程中,主要包含这四个角色,他们之间的通信依赖三个协议。
- HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)
针对网络上的客户端 与 服务器端在执行http请求的时候,遵守的一种规范。 其实就是规定了客户端在访问服务器端的时候,要带上哪些东西, 服务器端返回数据的时候,也要带上什么东西。
- Servlet协议:JavaEE协议的一部分。
由Sun公司制定的一种用来扩展web服务器功能的组件规范。(接口)
- JDBC协议:服务器端程序与数据库连接的接口
三、Tomcat服务器
实现JavaEE协议的一种服务器。
- 目录结构
bin:存放各种命令。(startup.bat、shutdown.bat用于开启和关闭服务器)
conf:存放各种配置文件。(server.xml、tomcat-users.xml)
lib:运行类库。
logs:运行日志。
temp:运行临时文件目录
webapps:存放具体的web应用。
work:jsp文件转换编辑结果的存放目录
四、JavaWeb项目结构
JavaEE规范要求JavaWeb项目的程序结构是:
- 在命令行打war包
jar cvf d:\abc\myprimary.war . //生成文档存放的路径 .表示当前目录所有文件都打包
五、Tomcat核心
Tomcat核心配置都集中在Tomcat安装目录下的conf\server.xml文件中,其核心结构如下图所示。
-
localhost主机域名
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
name:主机名。
appBase:该主机对应的目录。相对于Tomcat安装目录的相对路径。
unpackWars:是否自动解压war包。
autoDeploy:服务器在运行状态下,将一个项目的war包放入当前目录下是否自动部署到服务器上
配置虚拟目录:A、在<host>下添加子标签<Context/>
<Context path="/myprimary" doBase="d:/02-primary"/>
path:指定在当前主机域名下访问该应用的URI.
docBase:指定应用目录的路径。
B、在conf\Catalina\主机域名 下新建一个xml文件。
<?xml version="1.0" ?>
<Context docBase="d:/02-primary"/>
path即为该xml的文件名。
配置虚拟主机:
1、创建应用存放的目录
放在与webapps下并列目录下
2、修改server.xml文件
添加<Host>标签。
<Host name="www.Tooi.com" appBase="mywebapps"
unpackWARS="true" autoDeploy="true">
-
修改端口号
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改port值
六、HTTP1.1协议
HTTP协议包括:请求协议和响应协议
- 请求协议
请求行:请求方式+URI+请求协议版本号
请求报头:各种请求参数,格式 "参数名":"参数值"
空白行:分离请求报头与请求正文。
请求正文:请求参数和参数值。
- 响应协议
响应行:请求协议版本号 +状态码+状态描述信息
响应报头:各种响应参数,格式 "参数名":"参数值"
空白行:分离响应报头与响应正文。
请求正文:响应数据所形成的HTML文件内容
- 状态码
2xx:响应成功。
4xx:请求错误,404表示资源找不到
5xx:服务端错误,500一般表示Java代码发生错误。
- 指定错误页面
在web.xml添加
<error-page>
<error-code>404</error-code>
<location>error.html</location>
</error-page>
- GET请求
将请求参数作为URI的一部分。
参数值只能是字符串。 可以携带数据量小。 数据安全性低。
客户端收到GET请求响应会自动缓存响应,当客户端再次提交时,浏览器会直接读取本地缓存,提高响应速度,减轻服务器压力。
- POST请求
请求数据在请求正文。
数据类型可以是任意类型,数据量大,安全性高
- 默认请求提交方式