Tomcat方面的知识点

一、 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 对象可以监听端口

ServerSocket serversocket = new ServerSocket(6666);

while(true) {

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

   

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

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

 

}

MyService.java

// 提供服务

InputStream in = socket.getInputStream();

Thread.sleep(200);

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

byte[] buffer = new byte[len];

in.read(buffer);

String request = new String(buffer);

// 截取第一行

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

String uriName = firstLine.split(" ")[1];

OutputStream out = socket.getOutputStream();

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

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

if(!file.exists()) {

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

    out.close();

    return ;

}

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

FileInputStream fis = 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>

       <Context path=”/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 文件

<?xml version="1.0" encoding="ISO-8859-1"?>

 

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

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

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://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,才能访问到服务器

  IE 浏览器

www.sina.com

 sina 服务器

看windows 是否注册了该

主机名

DNS服务器 (网络服务商)

解析域名,获得一个 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" >

    <Context path="" 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)

 

 

时间: 2024-08-29 13:11:38

Tomcat方面的知识点的相关文章

2、MyEclipse和Eclipse调优,MyEclipse配置(tomcat和jdk的内存设置),jar引入相关知识点,将Java项目编程web项目的办法

1.WindowàPreferenceàGeneralàWorkspaceàText file encoding都改成UTF-8 2.WindowàPreferenceàGeneralàEditorsàFile Associationsà修改html和htm的默认Associateeditors为以下的: 修改jsp的打开方式: 修改xml的打开方式: 3.修改MyEclipse的启动服务 WindowàPreferenceàGeneralàStartup and Shutdown 4 Wi

给Java新手的一些建议——Java知识点归纳(Java基础部分)

写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java. 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的.和Java中各个框架相关的内容. 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容. 1. JVM相

给Java新手的一些建议——Java知识点归纳(Java基础部分)

写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java. 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的.和Java中各个框架相关的内容. 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容. 1. JVM相

给Java新手的一些建议----Java知识点归纳(Java基础部分)

学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:294919881我们一起学Java! 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java. 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的.和Java中各个

给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面并不仅仅是web,可以看到很多其中的规范都是通用的,目的是为了高效开发出健壮的服务企业业务模式的应用系统.J2EE中也是可以没有web界面的应用,而现在面向大众用户开发的网站往往也会使用到很多的J2EE的技术,所以J2EE和web开发的概念都是融合在了一起了. 我本人在JAVA开发刚入行的时候,也是

工作流Jpbm4.4工作流知识点总结(工作流开发宝典)

原文:工作流Jpbm4.4工作流知识点总结(工作流开发宝典) Jbpm工作流开发过程中的一些知识点总结,方便以后开发使用! 目录: 一.工作流框架的搭建 二.工作流框架的流程开发 1.管理流程定义 ①部署流程定义 ②查询流程定义 ③删除流程定义 ④获取部署对象中的文件资源内容 ⑤ 获取流程图中某活动的坐标 2.执行流程实例 ①启动流程实例 ②向后执行一步 ③查询任务 ④完成任务 ⑤拾取任务 ⑥获取流程中的变量 三.Jbpm和spring整合     第一章 工作流框架的搭建 1.1. 准备jBP

通向架构师的道路(第一天)之Apache整合Tomcat

原文转自:  http://blog.csdn.net/lifetragedy/article/details/7698555 一.先从J2EE工程的通用架构说起 这是一个通用的Web即B/S工程的架构,它由: ü   Web Server ü   App Server ü   DB Server 三大部分组成,其中: ²  Web Server 置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443. 80端口:用于正常的htt

利用Spark解析Tomcat日志,并将统计结果存入Mysql数据库

本文试图实现的需求场景为:以学习Spark知识点为目的,编写Scala利用Spark解析800M的tomcat日志文件,打印一段时间内ERROR级别记录的前10行,统计每分钟的日志记录数,并将统计结果存入mysql数据库中.之前曾用JAVA写过一次同样的处理逻辑,但在学习了Scala之后,真的感觉在计算方面Scala要比JAVA方便的多.没有学习Scala语言的同学速度速度了啊-- 技术要点 将日志文件写入HDFS中,相对路径PATH为"nova.log" 注意JAVA堆栈异常日志的处

在Servlet容器(以Tomcat为例)中使用CDI的方法

JSR-299 规范原来叫做 Web Beans,其主要目的是为了整合 JSF 和 EJB.到 2009 年http://www.aliyun.com/zixun/aggregation/18782.html">正式发布该规范时,JSR-299 已经改称 "Contexts and Dependency Injection for the Java EE platform"(简称 CDI ),整合 JSF 和 EJB 仍是其目的,但这并非 CDI 的唯一功能. 通读 J