1.3 Tomcat的下载和安装
Tomcat是Java领域最著名的开源Web容器,简单、易用,稳定性极好,既可以作为个人学习之用,也可以作为商业产品开发。Tomcat不仅提供了Web容器的基本功能,还支持JAAS和JNDI绑定等。(JNDI:Java Naming Directory Interface,即Java命名和目录接口,就是为某个Java对象起一个名字。)既然是开源Web容器,就是个服务器,把项目部署在tomcat上然后用浏览器访问。
Tomcat 4.0X中采用了新的Servlet容器:Catalina,完整实现了Servlet2.3和Jsp1.2规范。在做Web项目时,需要http协议(也就是基于请求和响应),比如在百度中输入一行内容搜扫,那么百度服务器如何处理这个请求呢?需要创建Servlet来处理,Servlet其实就是java程序,只是在服务器端的java程序,servlet通过配置文件拦截你的请求,进行相应处理,然后展示给你相应的画面。tomcat可以用来创建Servlet的东西。
Tomcat是做什么用的:1、是jsp(java Server Pages )网站的服务器之一,就像asp网站需要用到微软的IIS服务器,php网站用apache服务器一样,因为jsp动态网站使用脚本语言等,需要服务器来解释语言,服务器就是这个功能。2、如果网页是纯HTML的,浏览器可以直接解释并查看效果,但是网页一但是.jsp\.asp\.php等的动态网页时,浏览器无法自己解释,这时需要上面1、说的服务器。tomcat就是可以解释jsp等java编写的网站。
1.3.1 安装Tomcat服务器
1、登录 http://tomcat.apache.org 站点,下载Tomcat合适的版本。我下载的是Tomcat 8.0.39,windows 64位的。如下图。
2、下载完毕后,解压到任意目录。看到里面有如下文件:
bin:存放启动和关闭Tomcat的命令的路径;
conf:存放Tomcat的配置,所有的Tomcat的配置都在此路径下设置;
lib:存放Tomcat的服务器类的核心类库(JAR文件),如果需要扩展Tomcat的功能,也可将第三方类库复制到该路径下(MySQL下的驱动程序就要放进来);
logs:空路径,保存每次Tomcat运行后产生的日志;
temp:保存Web应用运行过程中的临时文件;
webapps:此路径用来自动部署Web应用,将Web应用复制在该路径下,Tomcat会将该应用部署在容器中;
work:保存Web应用在运行过程中,编译生成的class文件。可以删除,但是每次启动Tomcat时,都会创建;
LICENSE等相关文档。
这里注意,运行Tomcat还需要配置一个环境变量,JAVA_HOME.不管是Win还是Linux,配置此变量即可。该值指向JDK(不是JRE哦)的安装路径。如下图:
3、启动Tomcat,双击 Tomca t安装路径中 bin 目录中的 startup.bat 文件即可。
启动后,打开浏览器,地址栏输入http://localhost:8080,出现下面画面,则说明配置成功。(我的修改过端口,所以是:8888)
安装成功后,还需要对Tomcat进行必要的配置。
1.3.2 配置Tomcat的服务端口
默认端口是8080,可以修改,还可以修改配置文件让Tomcat同时在多个端口服务。
打开Tomcat安装路径下的conf文件夹,打开server.xml文件。(推荐使用EditPlus),找到第69行处,看到如下代码:
为了避免和公用端口冲突,我改为了 8888 。修改完后,需要重新打开 startup.bat 文件,再去浏览器输入 http://localhost:8888 仍看到上面的网页,则修改成功。(如果需要让Tomcat运行多个服务,只需要复制server.xml文件中的<Service>元素,并修改相应的参数,便可实现一个Tomcat运行多个服务,当然必须在不同的端口提供服务)
这里修改name和port,然后再地址栏输入相应的http://localhost:8880就可以。
在开发阶段,希望Tomcat能列出Web应用根路径下的所有页面,这样能更方便的选择需要调试的JSP页面。找到conf目录下的web.xml文件,修改如下第111行的false修改为true。
1.3.3 进入控制台
上图页面中右上角有三个控制台:一个是Server Status控制台(监控服务器状态),另一个是Manager App控制台,还有一个Host Manager控制台。(Manager控制台父负责部署,监控Web应用)。点击第二个Manager App,即是进入Manager控制台的连接,单机,出现下图所示:
·
需要输入用户名和密码才能进入,控制台的用户名和密码是通过Tomcat的JAAS(全称:Java Authentication Authorization Service(Java验证和授权API))控制的。刚才已经说过,Tomcat安装路径下的webapps路径是Web引用的存放位置,而Manager控制台对应的Web应用也是存放在该路径下的。进入webapps/manager/WEB-INF路径下,该路径存放了Manager应用的配置文件,打开其中的web.xml文件:找到如下代码片段:
<!-- Define a Security Constraint on this Application -->
<!-- NOTE: None of these roles are present in the default users file -->
<security-constraint>
<!-- 访问/html/*资源需要manager-gui角色-->
<web-resource-collection>
<web-resource-name>HTML Manager interface (for humans)</web-resource-name>
<url-pattern>/html/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<!-- 访问/text/*资源需要manager-script角色 -->
<web-resource-collection>
<web-resource-name>Text Manager interface (for scripts)</web-resource-name>
<url-pattern>/text/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-script</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<!-- 访问/jmxproxy/*资源需要manager-jmx角色 -->
<web-resource-collection>
<web-resource-name>JMX Proxy interface</web-resource-name>
<url-pattern>/jmxproxy/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-jmx</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<!--访问/status/*资源可以使用以下任意一个角色 -->
<web-resource-collection>
<web-resource-name>Status interface</web-resource-name>
<url-pattern>/status/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
<role-name>manager-script</role-name>
<role-name>manager-jmx</role-name>
<role-name>manager-status</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<!-- 确定JAAS的登录方式-->
<login-config>
<!--BASIC表明使用弹出式窗口登录-->
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
根据上面的代码片段,发现登录Manager控制台可能需要不容的manager角色。普通开发用户通常需要访问匹配/html/*、/status/*的资源,因此需要为该用户分配一个manager-gui角色即可。
Tomcat的用户有conf路径下的tomcat-user.xml文件控制,打开该文件,修改如下片段:
在这两个里面增加 rolename 和 username,password,roles。使用 username和password就可以登录,登录后的界面如下图:
上图中,当前Tomcat下部署的Web应用其实就是webapps目录下的应用。Tomcat提供两种方式部署Web应用;一种是把整个路径部署成web应用,一种是将WAR文件部署成Web应用。上图没有显示,如下图。
1.3.4 部署Web应用
有如下几种方式:①利用Tomcat的自动部署。②利用控制台部署。③增加自定义的Web部署文件。④修改server.xml文件部署Web应用。
方式一:最简单,只要把一个Web应用复制到Tomcat的webapps下,系统就会自动把它部署到Tomcat中。
方式二:利用控制台部署也很简单,只要在控制台按照如图所示输入即可:
然后点击Deploy,完成部署!会发现,在Tomcat的webapps目录下多了一个名为bbb的文件夹,且bbb中的文件与上面WAR url中的文件相同。
。其实这种方式还是由Tomcat自己部署的。
方式三:需要在conf目录下新建Catalina目录,再在Catalina目录下新建localhost目录,最后在该目录上新建一个名字任意的XML文件-该文件是部署Web应用的配置文件,该文件的主文件名将作为Web应用的虚拟路径。在该目录下新增test.xml文件,添加下列内容:
<Context docBase="E:\codes\02\2.3\basicSyntax" debug="0" privileged="true">
</Context>
上面docBase表示Web应用的绝对路径,再次启动时,Tomcat会把该路径下的Web应用部署成Web应用。注意下面的URL:
http://localhost:8888/Test/
方式四:需要修改server.xml文件,这可能会破坏omcat的系统文件,不建议采用。