web概述
WEB概念
Web概念
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
web资源分类
静态web资源(如html 页面):
指web页面中供人们浏览的数据始终是不变。如Html、CSS、javaScript
动态web资源:
- 指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。如JSP/Servlet、ASP、PHP
- 在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。
Web服务器
Servlet容器、web容器、web服务器
Servlet容器:
java中的动态资源开发技术为Servlet/JSP,sun公司定义了Servlet/JSP的技术规范,遵循这样规范就可以写出对应的Servlet、JSP程序,但是Servlet、JSP本身不能直接运行,需要运行他们的环境,于是有不同的厂商分别按照Servlet/JSP规范的要求开发了对应的运行环境,这样的能够运行Servlet/JSP的环境就叫做Servlet容器。
web容器:
web资源按照一定的规则整合起来组成能够被web访问的应用程序就叫做web应用,web应用运行也需要一定的环境。能够运行web应用的环境叫做web容器。
web容器的概念通常要大于Servlet容器,Servlet容器通常都是web容器,但是web容器不一定是Servlet容器,因为运行ASP、PHP的服务器是web容器,但是不能运行Servlet所以不能叫Servlet容器。
web服务器
web容器/Servlet容器具体来说就是web服务器,学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。
- 注意:这里所说的服务器不是指服务器硬件资源,而是指服务器软件。
常见的web服务器
WebLogic
WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范。
如图-1所示:
图-1
WebSphere
WebSphere是IBM公司的产品,支持J2EE规范,使用的也不少。
如图-2所示:
图-2
Tomcat
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范
虽然是免费开源的服务器,并且不能完全支持J2EE规范,但是它免费、轻量等特性让他仍然十分受到欢迎。我们学习阶段就是使用tomcat作为服务器。
如图-3所示:
图-3
tomcat的下载安装配置
下载tomcat
tomcat是Apache开源组织开发并无偿发布的免费开源的servlet容器,任何人都可以在他的官网上免费获取该服务器的拷贝及源代码,下载地址为:Apache Tomcat® - Welcome!
如下图位置提供了各个版本的tomcat下载,如图-4所示:
图-4
下载时请注意,不同版本的区别:
.zip为压缩版,解压后即可使用,注意区分操作系统是32位还是64位。
.exe为安装版,安装后使用,注意区分操作系统是32位还是64位。
安装版和解压版基本相同,只不过解压版解压后需要配置环境变量,安装版不需要。
.tar.gz为linux版本.
如图-5所示:
图-5
我们这里选择解压版下载。
安装tomcat
将解压版.zip包拷贝到要安装的目录下,解压。
注意,在tomcat的安装目录中不允许有空格和中文字符! 其实不止tomcat,绝大部分开发相关的软件都对中文和空格支持有问题,所以以后在安装任何软件时都要养成一个习惯:路径中绝对不要有中文和空格!
打开[tomcat]/bin目录,发现其中包含大量.bat程序,找到startup.bat,双击启动发现cmd窗口一闪而过。这是因为启动报错后cmd窗口关闭了自己,所以我们只看到一闪而过的窗口。
在windows的命令中启动cmd窗口,进入[tomcat]/bin目录,执行startup.bat,发现报错,如图-6所示:
图-6
简单阅读后发现提示,没有配置JAVA_HOME环境变量,因为tomcat本身也是java写的程序,运行需要jdk的支持,所以需要通过JAVA_HOME环境变量通知tomcat启动时用的jdk在哪。
要注意的是,不同版本的tomcat要求的jdk的版本是不相同的。
tomcat6 需要 jdk5.0以上版本。
tomcat7 需要 jdk6.0以上版本。
tomcat8 需要jdk7.0以上版本。
所以只需要配置环境变量JAVA_HOME指向java安装的根目录即可,如图-7所示:
图-7
再次启动tomcat,发现可以正常工作。
看到类似界面说明tomcat正常的启动起来了。如图-8所示:
图-8
打开浏览器,访问 http://localhost:8080可以看到如下画面,如图-9所示:
图-9
安装常见问题
(1)端口占用问题:
可以在cmd窗口中使用netstat -ano命令查询出哪个程序占用了端口,结束这个程序后再启动tomcat即可
(2)Catalina_home环境变量:
用来指定启动的tomcat的位置,如果没有配置过这个环境变量,则在哪个tomcat中启动,则该tomcat被启动,如果这个环境变量被配置过,无论在哪个tomcat中启动,最终启动的都是该环境变量指定的tomcat
关闭服务器
在[tomcat]/bin 目录下 双击shutdown.bat即可关闭服务器。
直接关闭tomcat窗口也可快速关闭服务器,但是这种做法服务器没有执行正常的关闭流程,有时会造成下次启动报错,遇到这种情况只要再执行一次shutdonw.bat即可解决问题。
tomcat的目录结构
bin --- 存放tomcat启动和关闭用的bat文件
conf --- 存放tomcat配置文件的目录
lib --- 存放tomcat运行时依赖的jar包
logs --- 存放tomcat运行时产生的日志文件的
temp --- tomcat自己用来存放运行过程中产生的临时文件的目录,不需要我们管理,tomcat自动管理
webapps --- 这是和开发人员关系最大的目录,是用来存放web应用的目录,我们开发的web资源最终要保存在这个目录下,外界就可以访问了
work --- tomcat的工作目录,tomcat在运行时产生的工作文件存放在这个目录
conf/server.xml--tomcat的核心配置文件
练习:修改tomcat/conf/server.xml Connector 中的 prot 将tomcat监听的端口号从8080 转为 80
tomcat中的基本概念
虚拟主机
tomcat中可以配置管理多个网站,外界在访问这些网站时,并不知道这些网站是运行在同一个tomcat中的,感觉起来就像他们各自运行在各自的虚拟出来的主机中一样,所以将一个网站交给tomcat去管理的过程称为为tomcat配置一台虚拟主机。
web应用
一个虚拟主机包含着许多web资源,但这些web资源不能直接交给虚拟主机管理,需要按照功能将web资源按照一定的目录结构组织成web应用再交给虚拟主机去管理
虚拟路径映射
将web应用交给虚拟主机管理,为web应用真实路径配置一个对外访问的虚拟的路径的过程叫做web应用的虚拟路径映射。
以上概念如图-10所示:
图-10
配置虚拟主机
配置虚拟主机
想要配置一台虚拟主机,只需要在[tomcat]/conf/server.xml的<Engin>标签下配置<Host>标签即可:
<Host name=”主机名” appBase=”虚拟主机管理的目录”></Host>
其中“虚拟主机管理的目录”是为当前虚拟主机配置一个虚拟主机管理的目录,可以将web应用放置到该目录下,虚拟主机就会自动管理该web应用了。
如图-14所示:
图-14
此时通过浏览器访问http://www.baidu.com发现无法访问。
这是因为还没有配置dns服务器。
DNS服务器
网络中是通过ip来区分不同的主机的,浏览器如何知道www.baidu.com对应的主机的ip呢?这里就是dns服务器在起作用了。
互联网上有一些专门将域名翻译为对应主机ip的服务器叫做dns服务器(域名解析服务器)专门进行域名到ip的翻译工作。
如果我们想要让www.baidu.com能够访问当前虚拟主机,还需要到dns服务器中进行配置,将www.baidu.com和本机ip地址进行绑定才可以。
但是dns是不能随意修改的!那我们如何进行测试呢?
Hosts文件
好在c:/windwos/system32/drivers/etc/hosts文件可以模拟dns的功能,浏览器在访问dns之前会首先检查该文件,如果这个文件中配置过域名ip映射,则会直接使用而不再去找dns服务器了。所以我们可以在hosts文件中进行如下配置,如图-15所示:
图-15
再通过浏览器访问,发现成功访问了我们配置的虚拟主机中的web应用。
综合练习
配置www.163.com虚拟主机,以三种方式配置web应用,并选择一种配置为缺省web应用,并且配置web应用的主页,最终实现,直接访问www.163.com时能够显示主页的内容。
web应用目录结构
- web应用目录结构
web资源需要按照一定方式组织成web应用才能交给虚拟主机去管理。web应用的目录结构如下:
mail --- web应用所在的目录
|
|--html css js jsp
|
|--WEB-INF
|--classes
|
|--lib
|
|--web.xml
(1)静态web资源和jsp可以放置在web应用的根目录下,在web应用根目录下的资源,浏览器可以直接访问
(2)WEB-INF目录可以没有,但是一旦有了,必须符合结构,放置在这个目录中的资源会被保护起来,浏览器是没有办法直接访问的
(3)WEB-INF/classes存放动态web资源的 class文件的
(4)WEB-INF/lib 存放class们依赖的jar包的
(5)WEB-INF/web.xml整个web应用的核心配置文件,这个web应的所有配置都要在这里进行 (配置web应用的主页 配置Servlet映射 配置监听器 配置过滤器....)
- 练习:新建game应用,包含index.html 和 news.html,并在web.xml中将index.html配置为主页。
web应用配置虚拟路径映射的三种方式
方式1
直接将web应用放置到虚拟主机管理的目录中。虚拟主机自动管理该目录,文件夹的名字成为web应用的虚拟路径。
这种方式不需要重启服务器即可起作用。
如果将文件夹的名字改为ROOT则当前web应用成为缺省web应用。
localhost虚拟主机管理的是webapps目录,所以将应用放置到webapps目录下通过localhost主机就可以直接访问了。
如图-13所示:
图-13
方式2
在server.xml中的<Host>标签中配置<Context>标签,其中的path属性指定虚拟路径(浏览器访问的路径),docBase指向真实的web应用目录。
注意,这种方式配置的web应用需要重启服务器后才会生效。
如果将path配置为空,则当前web应用称为虚拟主机的缺省web应用。
如图-11所示:
图-11
方式3
在[tomcat]/conf/[engin]/[host]目录下新建一个xml文件,其中文件名为成当前web应用虚拟路径,在xml文件的内部,用<Context>标签配置docBase指定真实路径,注意这种配置方式不需要指定path虚拟路径,因为文件名就是path.
这种方式不需要重启服务器即可起作用。
如果将xml文件名改为ROOT.xml则当前web应用成为当前虚拟主机的缺省web应用。
如图-12所示:
图-12
-
- 其他相关
- 打war包
- 其他相关
web应用是一个文件夹,可以将文件夹形式的web应用打成一个war包,减少体积同时更方便操作。
在cmd窗口中进入应用目录,使用jar -cvf news.war * 即可将当前目录下的内容打成 news.war包
将war包直接丢到虚拟主机管理目录下,发现会自动解压成web应用。十分方便。
-
-
- 通用web.xml
-
在[tomcat]/conf目录下有一个web.xml文件,整个服务器内所有的web.xml可以认为继承自该web.xml。所以如果有一些通用配置不希望每次都具体配置一次,可以在这里配置。