Web初学-入门和tomcat介绍记录
一、WEB开发的相关知识
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分为:
- 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
- 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
静态web资源开发技术
- Html
常用动态web资源开发技术:
- JSP/Servlet、ASP、PHP等
在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。
二、WEB服务器
学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。
下面是一段自己编写的demo,对简单的一个‘服务器’
// 利用ServerSocket构建一个server服务,端口号是8888
ServerSocket server = new ServerSocket(8888);
// 构建一个Socket
Socket socket = server.accept();
OutputStream out = socket.getOutputStream();
// 构建一个输入流 并把文件流传递给他
InputStream in = new FileInputStream("E:page1.html");
int i = 0;
byte[] b= new byte[1024];
while((i=in.read(b))!=-1){
out.write(b, 0, i);
}
// 关闭两个构建的流
in.close();
out.close();
运行这个demo服务器,在浏览器访问8888端口就可以获取E:page1.html的内容了,但是实际使用的服务器肯定不会这么简陋。
常见的服务器有
- WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持JavaEE规范,而且不断的完善以适应新的开发要求。
- 另一个常用的Web服务器是IBM公司的WebSphereAS,支持JavaEE规范。
- 大名鼎鼎的红帽的产品,原来属于开源组织Jboss,后被红帽收购。支持JavaEE规范,免费。
我们这些小型服务开发者使用的都是一类小型服务器,在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范。
Tomcat是在SUN公司推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用Java语言编写。目前是Apache开源软件组织的一个软件项目,它的官方网址为http://tomcat.apache.org。得到了广大开源代码志愿者的大力支持,且可以和目前大部分的主流Web服务器(IIS(微软的玩意儿)、Apache服务器)一起工作,它运行稳定、可靠且高效。已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。
关于容器,以前特别不理解,认为容器很高大上,后来看到一种观点就是:支持什么服务就是什么容器,支持servlet技术那么就是servlet容器。
三、关于汤姆猫(tomcat)的安装几个注意点
Tomcat6(甚至更高,现在最高出到9,jdk支持到1.8)本身是基于JDK1.5的应用程序,因此在安装和使用之前必须先行安装1.5及以上版本的JDK。一般有两种安装方式解压安装、Exe安装。一般大家都是默认使用解压安装方式,便于开发者使用,如果现在不理解,暂且记下来好了。
Tomcat6.x在默认情况下采用Eclipse的JDT(Java Development Tool)来编译JSP文件,在Tomcat6的发行包中自带了JDT(ecj.jar),而之前的Tomcat发行版本用JDK提供的Java编译器来编译JSP文件。因此,在使用Tomcat6.x时,即使不完整安装JDK,只要安装了用于运行Java程序的JRE(Java Runtime Environment,Java运行时环境),就可以运行Tomcat6.x了。
汤姆猫的启动方式有以下4种
- 使用Tomcat服务程序
- 使用Tomcat程序组中的快捷菜单
- 使用Tomcat.exe程序
- 使用批处理程序(使用解压版)
这里推荐使用最后一种,会创建一个命令行窗口,给的反馈信息最全面的。
如何验证启动成功
双击 bin 目录下的 startup.bat 文件
输入 http://localhost:8080/,显示一个带有tomcat的界面,就表示成功。
四、Tomcat 的目录层次结构
- bin文件,存放启动和关闭 Tomcat 的脚本文件
- conf,存放 Tomcat 服务器的各种配置文件
- lib 存放 Tomcat 服务器的支撑jar 包
- logs 存放 Tomcat 的日志文件
- temp 存放 Tomcat 运行时产生的临时文件
- webappsweb 应用所在目录,即供外界访问的web资源的存放目录
- work Tomcat 的工作目录
这几个都很好理解,查一查英文翻译就知道文件的含义大概是什么了。
五、tomcat的架构图
1、这里可以看到,Server下面有Service服务,服务中有各种connecter和引擎engine相连接,通过http协议,ajp协议等为整个Web应用提供服务。
Tomcat本身由一系列可配置的组件构成,其中核心组件是Servelt容器组件,它是所有其他Tomcat组件的顶层容器。每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。以下用XML的形式展示了各种Tomcat组件之间的关系
2、Context元素
Note:若想让程序成为默认的Web应用,即访问http://localhost:8080时自动登录到Web应用的主页,可以在此处增加名字为ROOT.xml文件,其元素的path属性应该为””
Tomcat6.x提供了多种配置元素的途径。当其加载一个web应用时,会依次按照以下五种方式尝试查找Web应用的元素,直到找到为止:
1)到Tomcat安装目录/conf/context.xml文件中查找元素。适用于所有web应用。
2)到Tomcat安装目录/conf/[enginename]/[hostname]/context.xml.default文件中查找元素。适用于所有web应用。
[enginename]:表示的name属性
[hostname]:表示的name属性。
3)到Tomcat安装目录/conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素。只适用于单个Web应用。[contextpath]:表示单个Web应用的URL入口。
4)到Web应用的META-INF/context.xml文件中查找元素。只适用当前Web应用。
5) 到Tomcat安装目录/conf/server.xml文件中查找元素。只适用于单个Web应用。
如果仅仅为单个Web应用配置元素,可以优先采用第三种配置方式。
3、Context元素的属性
在一般情况下,元素都会使用默认的标准Context组件,即className属性采用默认值org.apache.catalina.core.StandardContext,它除了拥有上面介绍到的属性外,还有自身专有的属性:
cachingAllowed
是否允许启用静态资源(HTML、图片、声音等)的缓存。默认值为true。
cacheMaxSize
设置静态资源缓存的最大值,单位为K。
workDir
指定Web应用的工作目录。
uppackWAR
如果为true,会把war文件展开为开放目录后再运行。为false,直接运行war文件。默认值为true。
4、虚似目录的映射方式
在server.xml文件的host元素中配置,例如:
在Tomcat6中,不再建议在server.xml文件中配置context元素,细节查看tomcat服务器关于context元素的说明。
让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
5、配置虚似主机
假如两家公司Web应用都发布在同一个Tomcat服务器上,可以为每家公司分别创建一个虚拟主机
www.itcast.cn www.it315.org
尽管以上两个虚拟主机位于同一个主机,但是当客户通过以上两个不同虚拟主机名访问Web应用时,会感觉到这两个应用分别拥有独立的主机
如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:
配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。
配置多个网站。
缺省虚似主机。
修改Windows系统中的C:\WINDOWS\system32\drivers\etc\hosts
六、Web应用的生命周期
用Tomcat的管理平台管理Web应用的生命周期
Tomcat的管理平台是Tomcat本身的一个Web应用,管理平台对应manager应用,它位于Tomcat安装目录/webapps/manager目录下。
manager应用会对用户进行安全验证。它要求用户具有manager角色。因此,应该先在Tomcat中添加具有manager角色的用户信息,方法为打开Tomcat安装目录/conf/tomcat-users.xml文件,在其中增加以下内容:
Web初学-入门和tomcat介绍记录的更多相关文章
- java web服务器tomcat介绍【转载】
机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...
- Java Web快速入门——全十讲
Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...
- Maven——快速入门手册(学习记录)
前言: 前段时间进行了一点maven的入门学习,在这里做个记录,希望能帮到一些正在学习的朋友们.maven版本为3.3.9.希望大家觉得好的点个赞,觉得不好的多提提意见和建议做个交流.这里也贴出我学习 ...
- day04 Java Web 开发入门
day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...
- JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC
接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
- JAVA WEB快速入门之环境搭建
前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...
- Web API 入门指南 - 闲话安全
Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
随机推荐
- 浮点数的陷阱--double i != 10 基本都是对的,不管怎么赋值
#include <stdio.h>int main(){ double i; for(i = 10; i != 10, i < 12; i += 0.1) ...
- JavaScript DOM编程艺术读后感(1)—— 平稳退化
最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...
- (转)Linux(Centos)之安装Java JDK及注意事项
场景:天下事有难易乎?为之,则难者亦易矣:不为,则易者亦难矣.人之为学有难易乎?学之,则难者亦易矣:不学,则易者亦难矣. 1 准备工作 下面配置jdk的方式在具有root权限时候能够执行.如果没有ro ...
- Python:使用Kivy将python程序打包为apk文件
1.概述 Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用 它来将Python程序打包为安卓的apk安装文件.以下是在windows环境中使用. 安装和配置的过程中会下载很多东西 ...
- TCP/IP协议之IP层
TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与 ...
- 一步一步深入理解Dijkstra算法
先简单介绍一下最短路径: 最短路径是啥?就是一个带边值的图中从某一个顶点到另外一个顶点的最短路径. 官方定义:对于内网图而言,最短路径是指两顶点之间经过的边上权值之和最小的路径. 并且我们称路径上的第 ...
- 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式
一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文 ...
- 花了一年时间完成的 在线G代码编辑,加工系统 G-Code Editor V1.0
G代码是数控程序中的加工指令.一般都称为G指令.可以直接用来驱动机床,各种控制系统.是一种数控行业标准.传统的G代码编写以及编辑无法在线编辑,也不能实时看到g代码编辑的最后加工路径已经不能直接对编辑的 ...
- Hadoop - 国内各站点最高温度、气压和风速统计
版权说明: 本文章版权归本人及博客园共同所有,转载请标明原文出处(http://www.cnblogs.com/mikevictor07/),以下内容为个人理解,仅供参考. 一.简介 该实例统计国内 ...
- RabbitMQ 使用场景一
安装环境 1.下载安装 Erlang 运行时环境 2.下载安装 RabbitMQ Server 应用程序 3.启动 RabbitMQ 服务(默认启动) 4.安装管理平台插件并打开远程访问权限 4.1. ...