(笔记十二)Tomcat启动、结构、配置、HTTP协议简介

1.web服务器
开发和部署web项目,需要web服务器的支持,将静态web或动态web资源与web服务器绑定,用户通过浏览器间接访问资源。如Windows中IIS,默认使用80端口,监听客户的请求。

WebLogic:(商业)目前应用最广泛的Web服务器,支持J2EE规范(包含13种技术)
Apache:免费服务器Tomcat,支持全部JSP以及Servlet规范
WebSphere:支持J2EE,IBM公司 

2.Tomcat启动问题
a)通常启动Tomcat时一闪而过,可能需要配置Java_Home环境变量,指定JDK位置

b)端口占用问题
Tomcat启动需要的端口,被其它程序占用,引发异常.
解决:cmd命令下netstat -ano 查看端口对应的PID,在任务管理器中-->选择列-->PID,结束对应进程

c)Catalina_home环境变量
Tomcat在安装过程中,引导设置JDK的目录和安装Tomcat服务,可以不配置Java_Home、Catalina_home环境变量;
Tomcat免安装版可能使用startup.bat启动服务,需要配置Java_Home、Catalina_home环境变量(Tomcat的安装目录)

3.Tomcat目录结构
bin目录:存放启动和关闭Tomcat的脚步文件
conf目录:各种配置文件
lib目录:支持的jar包
log目录:日志
temp目录:包含运行时产生的临时文件
webapps目录:web应用
work目录:工作目录

4.web应用和虚拟映射
a)将web项目放在webapps目录下
b)在Server.xml配置文件中添加Context节点,设置虚拟目录(datong),指向本地实际目录
<Context  path="/datong" docBase="c:\news\"/>
缺点:配置后,必须重启服务器(★★★)
c)具体配置,查看Tomcat文档(在webapps\docs目录),config-->context
5种配置虚拟目录方式
$CATALINA_BASE代表环境变量,表示Tomcat安装目录
[enginename]默认表示conf下Catalina目录

5.web应用组成结构
a)一般文件存放在web应用程序根目录下(外界直接访问)
b)WEB-INF(根目录):(无法非法直接访问,服务器调用)
class目录:java类
lib目录:jar包
web.xml配置文件

6.配置虚拟主机
一个Tomcat服务器下,可配置多个主机,具体配置查看Tomcat文档
a)conf下server.xml默认配置Host节点,通过浏览器,来访问服务器资源
<Host name="localhost" appBase="webapps" />
如:
<Host name="www.test.com" appBase="C:\web">
<Context path="/mail" docBase="c:\web\mail" />
</Host>
b)修改本地host,设置c:\windows\system32\drivers\etc\hosts

7.打包(在tomcat运行中,放到webapps下,自动解包)
jar -cvf  名称.war  目录

8.context的reloadable,改动程序后是否自动加载

9.web资源访问流程
1)浏览器-->本地Host-->服务器-->主机-->资源-->响应
2)浏览器-->DNS-->服务器-->主机-->资源-->响应
视频web开发入门第四天视频07

10.了解密码学与HTTPS
视频web开发入门第四天视频09

11.HTTP协议
用于定义客户端与WEB服务器通讯的格式
1)使用telnet连接Tomcat,观察响应信息
命令:telnet localhost 8080 
输入:
GET /test/1.html HTTP/1.1
Host:

2)HTTP1.0与1.1区别
1.0中,一次只能获取一个web资源,1.1一个连接上获取多个web资源
3)优化响应
<html>
<body>
<img src="1.jpg" />
<img src="2.jpg" />
</body>
</html>
在客户端连接上服务器后,一共发出3个请求,减少HTTP的请求数来优化的目的。

12.HTTP请求
客户端连接上服务器后,向服务器发送一个HTTP请求。
完整的格式包括:一个请求行、若干请求头、以及实体内容。
请求行:客户端的请求方式 (GET,POST)、请求资源名称、HTTP协议版本号
请求头:客户端环境信息

内容:如果是POST请求,包含内容

13.HTTP响应
一个响应表示服务器向客户端回送的数据。
包括:一个状态行、若干消息头、内容实体
状态行:HTTP版本号 状态码 原因,如HTTP/1.1 200 OK

注:状态码、请求头、响应头含义见文档

14.请求头字段Range实现断点续传功能
视频web开发入门第四天视频15

15.例子

import java.io.IOException;
import java.io.OutputStream;
import java.net.*;

public class Main {
	public static void main(String[] args) throws IOException {
		String data = "hello world";		
		int count=1;
		while (true) {
			String msg=count+"."+data;
			count++;
			int len = msg.getBytes().length;
			System.out.println("listen...");
			// 套接字监听
			ServerSocket server = new ServerSocket(9002);
			Socket sock = server.accept();
			OutputStream out = sock.getOutputStream();
			// HTTP响应信息
			StringBuffer sb = new StringBuffer();
			sb.append("HTTP/1.1 200 OK\r\n");
			sb.append("Content-Type:text/html;charset=UTF-8\r\n");
			sb.append("Content-Length:" + len + "\r\n");
			sb.append("Cache-Control:no-cache\r\n\r\n");
			sb.append(msg);
			// 输出
			out.write(sb.toString().getBytes());
			out.close();
			sock.close();
			server.close();
			System.out.println(sb.toString());
			System.out.println("over...");
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值