JavaWeb基础(二)-Tomcat服务器安装和基本配置
2018-08-16 本文已影响13人
sixleaves
服务器
所谓服务器其实是电脑, 只不过服务器比我们日常使用的个人计算机配置方面强悍很多。而装在服务器上的软件构成了服务器能对外提供的功能。我们说Mysql服务器指的是这台电脑主机上装着MySQL数据库软件,能对外提供数据库服务。如果以软件
和硬件
来分类,可以分为软件服务器
和硬件服务器
.
Java
服务器分类
- http服务器。负责渲染
静态网页
.如apache服务器
- web服务器。实现部分JavaEE规范,轻量级。如
Tomcat(解析JSP最快的服务器)、Jetty
- 应用服务器。实现全部JavaEE规范,重量级。如
Weblogic、JBOSS
容器
什么叫容器?所谓的容器是为程序的运行提供环境所需要的环境
所以Servlet容器就是为Servlet程序提供可以运行的环境.
Tomcat容器
Tomcat的目录结构
Tomcat的目录结构-
bin目录
: 存放Tomcat的工具、启动和关闭脚本. -
conf目录
: 存放Tomcat的配置文件 -
lib目录
: Tomcat的核心jar包和依赖的jar包 -
work目录
: 装JSP翻译成Java文件的代码 - logs目录: 存储日志的目录,可以用来排查异常问题
- temp目录: 临时文件目录
- webapps目录: 部署目录(只有手动启动tomcat才是部署在这, eclipse默认不是部署在这)
Tomcat的安装
-
安装包的选择
apache官网下载.以tomcat7为例.
下载
-
环境变量的配置
无论什么系统,都需要配置JAVA_HOME环境变量.tomcat启动的时候依赖于该变量取寻找JDK.以MAC系统为例配置环境变量.如果你用的是默认的终端,不是zsh之类的第三方,那么直接编辑.bash_profile
这个文件加入如下几行即可.
export JAVA_7_HOME="/usr/libexec/java_home -v 1.7"
export JAVA_8_HOME="/usr/libexec/java_home -v 1.8"
export JAVA_HOME=$JAVA_8_HOME
原理
其中/usr/libexec/java_home是`Mac OS X 10.5之后`引入.专门用来管理JAVA_HOME的程序.
我们指定版本号即可查询到对应版本的JAVA_HOME
-
启动tomcat,并用浏览器访问验证
使用startup.sh脚本启动.如下命令.
启动tomcat
浏览器进行验证.点击打开http://127.0.0.1:8080
Tomcat安装常见错误
- 报错
Parse Fatal Error at line 1 column7
. 原因:xml文件前加空格报错, 因为这导致不能正确解析xml.解决办法删除空格
- Tomcat启动成功,访问相关资源报
404 Not Found
.原因:资源路径有错或者资源就不存在.解决方法写对路径
. -
java.net.BindException: Address already in use: JVM Bind
.原因:端口冲突被占用.解决办法, 关闭占用端口的进程
- 在xml配置文件中使用中文,应该使用UTF-8编码.
Tomcat的常用配置
Tomcat的配置文件都在conf目录下, 主要包括server.xml配置服务器
和tomcat-users.xml
配置安全权限
和虚拟主机服务
- 端口配置
开打server.xml, 搜索定位8080
关键字.会定位到如下内容。8080即tomcat容器的默认端口.我们可以更改成任意合法端口,只要该端口不在(0---1023
)之间。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 权限配置和服务配置
权限配置
- 如上图,点击左边三列
Server Status
,Manager App
、Host Manager
分别对应三项功能,依次是服务器状态信息
,WebApp管理
、虚拟主机管理
。这些在刚装完tomcat是没法正常访问.因为没有相应的权限.- tomcat配置权限,是以角色的概念存在, 角色拥有权限.我们需要先添加角色.在添加用户,给用户配置角色.
这些配置,tomcat都会在第一次还没配置前, 给出提示如何配置.
为配置权限前, 尝试登入给出的提示
如下配置.配置了访问的用户名
,密码
.已经拥有的权限(查看容器信息、管理容器中的app、管理虚拟主机权限)
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="root" password="123456" roles="manager-gui,admin-gui,admin-script"/>