服务器分为两种:软件和硬件。
服务器的作用:对外提供服务,让外界来访问
的主机
tomcat是服务器软件需要安装
硬件是软件的运行基础,硬件需要软件的配合
主机装了mysql服务器软件对外就是数据库服务器
主机装了tomact服务器软件对外就是web服务器
主机装了邮件服务器软件对外就是邮件服务器
服务器要有软件的配合,装什么软件叫什么服务器
Weblogic也是web服务器,适用于大型项目、功能比tomcat强,但是体积很大,而且是收费的。
tomcat下载
http://tomcat.apache.org
tomcat有window版和Linux版,还分32位版本和64位版本,还分安装版和解压版
tomcat6 JDK5
tomcat7 JDK6
tomcat8 JDK7
安装的路径中千万别有中文和空格
启动和配置服务器
tomcat在启动前需要配置环境变量
环境变量:
JAVA_HOME:告诉tomcat,jdk安装在哪里,tomcat在运行时需要依赖jdk,路径后不要写分号
C:\Program Files\Java\jdk1.8.0_73
path:path里有执行命令的目录
%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;d:\u8\admin;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\MySQL\MySQL Server 5.5\bin
启动服务器
[tomcat安装目录]如:D:\apache-tomcat-7.0.59
[tomcat安装目录]/bin/startup.bat启动服务器
[tomcat安装目录]/bin/shutdown.bat关闭服务器或者点击窗口右上角关闭
修改tomcat服务器默认端口为80
在tomact启动后,会默认监听8080端口,这意味着我们在访问tomcat服务器时,需要在主机名或者ip后跟上端口,如http://localhost:8080
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
在访问时,不想写端口,直接通过主机名或者IP来访问,可以将8080端口修改为特殊的80端口,需该安装目录的config子目录下server.xml中的port改为80,修改完重启服务器
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
端口占用问题
这是因为80端口被别的程序占用导致服务启动失败。
解决方式:
1运行shutdown.bat文件,将tomact按关闭的流程再关闭一次
2若果仍然失败,打开cmd,输入
netstat -ano
如果得到如下结果,看到80端口被进程ID为5664的进程占用
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 5664
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 880
........
用taskkill终止这个进程
taskkill /f /pid 5664
重启服务器
Tomcat服务器的目录结构
bin --批处理文件的存放目录
bootstrap.jar主程序入口
conf--- 配置文件目录
server.xml 核心配置文件
lib--- jar包存放目录
logs--- 日志存放目录
temp ---运行时产生的临时文件的存放目录
webapps--localhost虚拟主机默认管理的目录,放在这个目录中的Web应用可以通过localhost主机来访问
work--运行时产生的工作文件存放的目录
(JSP翻译后的Servlet文件,session的序列化文件)
对象实现序列化接口,持久化保存到硬盘上,或对象在网络上进行传输-->序列化
Web应用及相关配置
1什么是web应用?
Web应用:
Web应用其实就是一个目录。将为了实现某一个功能而准备的web资源文件(html/css/js),根据所实现的功能,按照一定的目录组织起来就是一个web应用。
web资源不能直接被虚拟主机所管理,必须组织成web应用才可以。
2如何组织web应用的目录结构
web.xml有的话必须要有内容
news
|
|— —除WEB-INF以外的目录下:html/css/js/jsp ..这些文件可以直接被浏览器访问
|— —WEB-INF(特殊的目录)放在这个目录中的资源文件不能直接被浏览器访问
|— —classes目录:class文件的存放目录
|— —lib目录 Web应用运行时所依赖的jar包的存放目录
|— —web.xml文件:web应用的核心配置文件
3如何部署web应用到虚拟主机中
只需要将web应用的目录拷贝到虚拟主机管理的目录下就可以完成发布!
4如何部署缺省的web应用
将Web应用的名称改为大写的ROOT,当前的web应用就是一个缺省的web应用(在访问服务器中的WEB应用下的资源时, 如果不想写WEB应用的虚拟目录的名称, 可以将当前WEB应用配置为缺省的WEB应用. 配置方式是将WEB应用的虚拟目录名称改为ROOT即可)
浏览器访问服务器带着名称,如news
将news应用配置为缺省的web应用之前,访问地址为
http://localhost/news/1.html
将news应用配置为缺省的web应用之后,访问地址为
http://localhost
5如何配置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_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>1.html</welcome-file>
</welcome-file-list>
</web-app>
将1.html配置为web应用的主页之后,访问时可以不写资源的路径了
虚拟主机以及相关配置
1什么是虚拟主机?
虚拟主机:
所谓虚拟主机就是tomcat服务器中配置的一个站点,比如(淘宝/新浪),用户访问站点时就好像访问一台独立的主机一样,我们称这两个站点就是运行在tomcat服务器模拟出来的两台主机上。
tomact服务器可以配置多个站点每一个站点都是一台虚拟主机。
2.如何配置一台虚拟主机?
找到D:\apache-tomcat-7.0.59\conf\server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
在后面加上
<Host name="www.news.com" appBase="newsapp"></Host>
把news应用的文件拷到newsapp下,改名字为大写ROOT
配置完成后还要到host文件中或者是DNS服务器中 添加域名和IP的映射关系,中间用tab隔开
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 www.news.com
3.如何配置缺省的虚拟主机?
默认的主机配置在server.xml文件的Engine标签上,如下:
<Engine name="Catalina" defaultHost="localhost">
修改defaultHost,来修改默认的虚拟主机