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 ...
随机推荐
- USB的四种传输类型与端点
1.事务 在介绍USB传输类型之前,请允许我先简答介绍一下USB事务. 事务一般由令牌包.数据包(可选).握手包组成. 令牌包:用来启动一个事务,总是由主机发送. 数据包:可以从主机到设备,也可以由设 ...
- Codeforces_776E: The Holmes Children (数论 欧拉函数)
题目链接 先看题目中给的函数f(n)和g(n) 对于f(n),若自然数对(x,y)满足 x+y=n,且gcd(x,y)=1,则这样的数对对数为f(n) 证明f(n)=phi(n) 设有命题 对任意自然 ...
- jmeter压力测试报告 - DEMO
XXX压力测试报告 时间:2015-08-04 测试人员:xxx 目录 XXX压力测试报告... 1 一 测试 ...
- 配置mabatis,报Could not load driverClass ${jdbc.driverClassName}
<!-- 扫描mapper --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" ...
- 【SpringMVC】使用SpringMVC进行上传文件!
写在前面: 之前在上传文件的时候,使用的是commons-file-upload这个插件,非常方便,能控制每个文件的大小,总共大小,缓存,以及支持多个文件的同时上传,但是写一次上传文件的后台代码量太大 ...
- 【CSS3】块级元素与行内元素的区别
一.行内元素与块级函数的三个区别 行内元素的特点: 和其他元素都在一行上: 高,行高及外边距和内边距部分可改变: 宽度只与内容有关: 行内元素只能容纳文本或者其他行内元素. 行内元素设置width无效 ...
- linux下使用scp远程传输自动输入密码
由于需要将A服务器的文件 远程传输到B服务器 但是scp命令每次都要手动输入密码 这样脚本执行太繁琐,所以讲A服务器和B服务器互信即可,具体操作如下: 首先在A服务器配置: mkdir -p ~/.s ...
- Java 编程 订单、支付、退款、发货、退货等编号主动生成类
订单.支付.退款.发货.退货等编号主动生成类 在商城网站中,订单编号的自动生成,ERP中各个单据的编号自动生成,都可以按照一下的方式来自动生成. 第一步:定义常量订单编号前缀.订单编号起始数.订单编号 ...
- CSS实现横列布局的方法总结
一.使用float实现横列布局的方法 如下面所示:DIV1和DIV2都可以选择向左或者向右浮动50%来实现展示在同一行 div1 div2 实现下面图片中布局的css样式如下: 分析: 1.第一行第一 ...
- Spring 实现自定义 bean 的扩展
Spring mvc 提供了扩展 xml 的机制,用来编写自定义的 xml bean ,例如 dubbo 框架,就利用这个机制实现了好多的 dubbo bean,比如 <dubbo:applic ...