一、 WEB 服务器

1. 什么是WEB 服务器?

就是一台电脑,安装了一个服务器软件

2. 为什么需要安装 WEB 服务器

思考问题: 从一台计算机的 IE 浏览器如何去访问另一台计算机中的文件

2.1  两台计算机是如何实现通讯的?

IP地址(计算机的唯一标识)

IPV4 4个字节的整数,每个字节以 点号 隔开127.1.12.222  每个字节的取值 0~255

IPV6 16字节

回路ip地址  127.0.0.1

在计算机中程序会绑定在某一个端口  0~65535 尽量用 1024 以上的

连接一台计算机就需要输入 ip 地址和端口号

作为接收方, 应该绑定ip,监听指定的端口

2.2  在本地写程序添加一个服务,供别人来访问, 假设监听 8888 端口

2.3  编码实现了一个本地服务器程序

作用: 管理本地的资源,只要将html页面放到指定的目录下,外界就可以访问了

2.4  安装服务器的目的: 开发好的web资源可以发布到服务器上,这样外界就可以通过浏览器访问了

源程序: MyServer.java

//ServerSocket 对象可以监听端口

ServerSocketserversocket = new ServerSocket(6666);

while(true){

Socket socket = serversocket.accept(); // 等待客户端的连接请求,一旦有请求过来,就结束阻塞,返回客户端对象

// 一旦有客户来访问,就另开一个新线程去提供服务, main线程继续等待下一个客户的连接

new Thread(new MyService(socket)).start();

}

MyService.java

// 提供服务

InputStreamin = socket.getInputStream();

Thread.sleep(200);

int len =in.available(); // 估计此流不受阻塞能读取的字节数

byte[]buffer = new byte[len];

in.read(buffer);

Stringrequest = new String(buffer);

// 截取第一行

StringfirstLine = request.substring(0, request.indexOf("\n"));

StringuriName = firstLine.split(" ")[1];

OutputStreamout = socket.getOutputStream();

// 根据需要访问的资源创建 File 对象

File file= new File("src" + uriName);

if(!file.exists()){

out.write("对不起!您访问的资源不存在!别瞎搞!!".getBytes());

out.close();

return ;

}

// 从文件读, 往浏览器写

FileInputStreamfis = new FileInputStream(file);

buffer =new byte[1024];

while((len = fis.read(buffer)) > 0) {

out.write(buffer, 0, len);

}

socket.close();

二、Tomcat 服务器的安装和配置

1. 使用 tomcat6.0.20.rar 文件解压即完成安装

2. tomcat 就是一个java程序,一定会用到 jre

所以需要配置环境变量 java_home 配置成jdk的安装目录 c:\jdk1.6

tomcat的启动是通过 startup.bat 文件, 实际上startup.bat 中是去调用

catalina.bat文件, 而且是通过 %catalina_home%\bin\catalina.bat 去找

所以为了保证服务器启动正常, 需要配置catalina_home 环境变量为 tomcat的安装目录

3. tomcat 的目录结构

bin : 存放一些执行文件

conf: 存放服务器的配置文件

lib : 存放tomcat 所依赖的 jar 文件

logs: 存放日志文件

temp:  存放临时文件

webapps: web applications 存放所有的web应用程序(web资源)

work: tomcat 的工作目录, jsp翻译成的Servlet就在这个目录下

4. web应用

多个web资源存放在一个目录下即为一个web应用(web应用程序、web工程)

web 应用的目录结构

静态web资源直接放在目录下

java类放在classes目录下

web.xml文件负责管理web应用下所有的web资源

所有jar包放在lib目录下

三、 WEB 应用的映射

1. 虚拟目录

一个web应用(服务器上一个目录) 需要供外界访问的路径,需要映射虚拟目录

在 tomcat6 中,放在webapps下的web应用,服务器会自动做映射(将文件夹名称作为虚拟路径)

对于 webapps 目录外的web应用需要手动映射虚拟路径

1.1. 在 server.xml 文件可以配置

<host>

<Contextpath=”/itcast” docBase=”f:\itcast” />

</host>

1.2. 在 %tomcat目录%\conf\catalina\localhost 下写一个 xml文件

文件名就是 虚拟目录

<Context docBase=”f:\itcast” />

多级目录配置 aaa#bbb.xml 对应/aaa/bbb

如果文件名 是ROOT.xml 那就是配置了缺省的web应用, 访问时不需要输入 虚拟目录

2. web.xml

管理 web 应用下所有的web资源

包括咱们后面学的Servlet jsp都需要在这个文件中做映射

实验: 配置web应用的 首页

在 web 应用下新建目录 WEB-INF ,在此目录下 新建web.xml 文件

<?xmlversion="1.0" encoding="ISO-8859-1"?>

<web-appxmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

version="2.5">

<welcome-file-list>

<welcome-file>itcast.html</welcome-file>

</welcome-file-list>

</web-app>

3. 域名解析

一个完整 url

http:\\www.sina.com:80\index.jsp

协议名   主机名         端口号 资源名

IE 访问服务器的原理,

在IE中输入的地址中包含域名,域名就需要被翻译成服务器的IP,才能访问到服务器

C:\WINDOWS\system32\drivers\etc\hosts

4. web应用映射的练习:

新建一个 web 应用

配置成缺省的web应用

配置首页

配置tomcat监听端口为80

在 windows 中注册主机名

C:\WINDOWS\system32\drivers\etc\hosts

在c盘下建一个文件夹 baidu 写一个页面 index.html

在 ie 输入 http://www.baidu.com  可以访问该页面

5. 虚拟主机

服务器允许在一个IP上配置多个主机,即虚拟主机

http://www.sina.com:80/index.html

中的 www.sina.com 起了两个作用:

找DNS服务器,作为域名被解析为IP

通过Host头告诉服务器访问的主机名

配置方式: 在 server.xml 文件中配置Host元素, 需要指定主机名、appBase(默认web应用存放目录)

appBase目录下所有的web应用,tomcat会自动映射虚拟路径

<Host name="www.sohu.com"  appBase="F:\sohu\webapps" />

做实验: 给新配置的虚拟主机配置缺省的web应用

<Host name="www.sohu.com"  appBase="F:\sohu\webapps" >

<Contextpath="" docBase="F:\sohu\webapps\abc" />

</Host>

http://www.sohu.com/abc/a.html

访问一个 a.html 静态web资源, IE 做了什么事

1) 将www.sohu.com 作为域名发送给DNS , 解析成 IP 地址, 访问一台服务器

2) 发送 Host 头(www.sohu.com),告诉服务器我要访问的虚拟主机 ,服务器拿着Host头找匹配的Host元素

3) 将abc作为虚拟目录,告诉服务器我要访问的web应用 ,服务器拿着 abc 找匹配的web应用

4) 将 a.html 作为资源名, 告诉服务器我要访问的 web 资源, 服务器拿着 a.html 去web.xml文件中找映射

虚拟目录对应是一个web应用的目录,所以虚拟目录也被我们称作web应用路径(web应用的上下文contextpath)

tomcat虚拟目录和虚拟主机等相关配置相关推荐

  1. JavaWeb学习笔记-Tomcat虚拟目录与虚拟主机介绍

    Tomcat虚拟目录与虚拟主机介绍 1.主配置文件 server.xml conf文件夹中包含server.xml配置文件 8080 端口:tomcat服务默认端口号.访问url地址后必须手动写:80 ...

  2. 云服务器虚拟目录吗,虚拟主机 虚拟目录

    虚拟主机 虚拟目录 内容精选 换一换 前面讲了如何安装配置Nginx,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category ...

  3. linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)

    说明一下几个基本的 Listen 80 ServerName localhost:80 ServerAdmin root@localhost ServerRoot /etc/httpd #apache ...

  4. 根据服务器ip地址查看虚拟目录,IIS虚拟目录实现与文件服务器网络驱动器映射共享...

    这篇文章转载别人,想原创做者致敬!web 我本人也遇到一样的问题,故转载记录.安全 本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本.服务器 一般状况下,拥有多台服务器的 ...

  5. tomcat配置虚拟目录,虚拟目录,tomcat目录,tomcat服务器,网站图片虚拟目录

    2019独角兽企业重金招聘Python工程师标准>>> <!-- tomcat->conf->server.xml里面<Host>标签内加该段代码 -- ...

  6. oracle 删掉虚拟目录,创建虚拟目录失败,必须为服务器名称指定“localhost”

    Autofac 依赖注入 介绍 Autofac是一款IOC框架,很轻量级性能非常高,自动注入很给力. NuGet Autofac:Autofac控制反转容器核心 Autofac.MVC5:提供IDep ...

  7. 安装默认报表服务器虚拟目录,本机模式安装默认配置 (Reporting Services)

    "本机模式默认配置"指安装程序既安装报表服务器实例也对其进行配置的 Reporting Services 安装. 安装程序结束后,报表服务器便进入运行状态,可供使用.本机模式报表服 ...

  8. J2EE中关于tomcat的maxIdle、maxActive、maxActive相关配置

    一.基本概念 1 maxActive 连接池的最大数据库连接数.设为0表示无限制,一般把maxActive设置成可能的并发量就行了 2 maxIdle 最大的空闲连接数 3 maxWait 最大建立连 ...

  9. java 跳转虚拟目录_java tomcat虚拟目录的深入了解

    我们知道,Web网站中的内容(包括网页,图片,音频文件等)一般都存放在App的目录下.但随着网站内容的不断丰富,用户需要把不同层次的内容组织成网站的子目录.我们通常的做法是在网站主目录下新建子目录,并 ...

最新文章

  1. RelativeLayout布局,不希望文本盖住其他组件
  2. 说说设计模式~组合模式(Composite)
  3. mac版python连接mysql_Mac下Python连接MySQL · BlBana’s BlackHouse
  4. vue 跳转页面传参的时候参数值为undefined的解决方法
  5. Angular karma test.ts里一些标准api用console.log打印出的输出
  6. 夯实数字化转型算能基石 构建洛阳银行核心云
  7. SecureCRT用证书方式登录
  8. 买基金你们都亏了多少钱?
  9. python进阶学习笔记(四)--多线程thread
  10. Linux使用docker安装RabbitMQ一站式教程【图文教程】
  11. vcpkg Ubuntu安装
  12. tracker服务器架构分析
  13. 数据分析师岗位需求数据分析
  14. 视频会议软件Zoom存在安全隐患,我们是否需要停止使用
  15. 计算机无法显示硬盘盘符,电脑硬盘不显示盘符怎么办 移动硬盘不显示盘符的原因...
  16. JAVA基础案例教程——模拟物流快递系统程序设计
  17. C语言getc函数没错不管用,对比C语言中getc()函数和ungetc()函数的使用
  18. 计算机组成原理计算题整理
  19. 【JavaScript-移动端常用事件】了解移动端touch触摸事件
  20. 公司估值越低越好吗?买市盈率低的股票究竟是赚是赔?python量化给你答案【附代码】| 邢不行

热门文章

  1. opencv进阶学习笔记14:分水岭算法 实现图像分割
  2. VTK:导出PolyData场景用法实战
  3. opengl加载显示3D模型X类型文件
  4. OpenCASCADE绘制测试线束:拓扑命令之扫掠Sweeping
  5. boost::stacktrace模块实现终止处理程序的测试程序
  6. boost::get_deleter相关的测试程序
  7. boost::signals2模块实现为类定义后构造函数的示例
  8. boost::hana::type_c用法的测试程序
  9. boost::gil::get_num_bits用法的测试程序
  10. GDCM:gdcm::Reader的测试程序