本文所用软件版本:
JDK(1.8):JDK8u92 64 位
Eclipse(4.6):eclipse-jee-neon-R-win32-x86_64
Tomcat(8.5.4):apache-tomcat-8.5.4-windows-x64
1. 向 Eclipse 中添加 Tomcat
首先,需要安装好 JDK,Eclipse,Tomcat 并配置好相关的环境变量.Tomcat 配置好后,在浏览器输入 http://localhost:8080/ 会出现如下图所示的 Tomcat 的首页.
在 Eclipse 中点击[Window] -->[Preferences] 后,在弹出的界面中点击左侧的[Server] -->[RuntimeEnvironrenment] ,会弹出如下图所示界面:
点击[Add] 添加 Tomcat.
选择 Apache Tomcat v9.0,勾上 Create a new local Server(不勾上也可以使用安装的 Tomcat,但勾上可以进行一些方便使用的配置),然后点击[Next] .
这里修改 Tomcat 名称,选择 Tomcat 的安装目录和使用 JDK, 然后点击[Finish] 完成.然后可以看到 Eclipse 的项目资源管理器(Project Explorer)这里多了一个 Servers,如下图所示.
双击下图中红色圈出的地方,将出现 Servers 的配置界面.
下图是 Eclipse 对刚刚添加的 Tomcat 的默认配置,其中 Server Locations 指定了 Server 的路径和应用部署的路径.
2. 创建 web 测试工程, 对在 Eclipse 中发布项目进行测试
首先新建一个 Web 工程,我们将工程命名为 TestSite.在 Eclipse 中点击[File] -->[new] -->[Dynamic Web Project] ,如下图所示.
输入工程名称,然后连续两次点击[Next] .
修改应用上下文(根路径),然后点击[Finish] 完成.
接下来新建一个 index.jsp 文件和一个 TestServlet 类.通过在项目上右键,依次点击[New] -->[JSP File] 创建 JSP 文件.
创建完 index.jsp 页面后,它自动在 Eclipse 中被打开,如下图所示.我们看到页面中有一个 "HttpServlet 类没有在 Java 编译路径上找到" 的错误.解决该错误只需将
相关实现 servlet 规范的 jar 包添加到 Build Path 上即可.
在工程上右击,然后依次点击[Build Path] -->[Configure Build Path...] ,如下图所示.
点击[Add Library] ,添加依赖库.
点击[Server RunTime] -->[Next] .
选择刚刚添加进 Eclipse 的 Tomcat, 然后点击[Finish] 完成.
现在页面中出现的错误已经消失了.我们将 title 标签中的内容改为 test,在 body 标签中添加一句简单的 "welcome to this site!",如下图所示.
通过在[Deployment Descriptor] 下的[Servers] 上右键,然后依次点击[New] -->[Servlet] 新建一个 Servlet 类. 如下图所示.
输入包名和类名,然后点击[Next] ,进行下一步操作.
这里点击[Edit] 可以修改 TestServlet 的 URL 映射.我们将其修改为 "/test".
以下是新建的 TestServlet 中的 doGet 和 doPost 方法.
现在,可以发布我们的测试工程到 Tomcat 了.如下图所示,通过[Add and Remove] 可以部署和卸载工程.
发布好工程后,在浏览器中输入 http://localhost:8080/site/ , 如下图所示,说明没有问题.
再输入 http://localhost:8080/site/test ,访问我们的 TestServlet,如下图所示,也成功了.
不过现在查看 Tomcat 中什么发现什么东西也没有.刚刚发布的工程其实在如下图所示的目录中.
下面我们将介绍使用自定义的目录来部署我们的应用.
3. 使用自定义的目录来部署应用(强烈推荐)
如下图所示,[Server Locations] 有三种配置方式,使用工作空间元数据,使用 Tomcat 安装位置和使用自定义位置.第一和第三种方式不会修改安装的 Tomcat,第二种方式会控制安装的 Tomcat.即使用第一和第三种方式时,应用程序的部署不会造成安装的 Tomcat 中的任何文件的改变(不要将 Server Path 和 Deploy Path 指向安装的 Tomcat 中的目录),Tomcat 是干净的,因为并没有直接部署到 Tomcat 的任何目录中,而是将项目部署到了 Tomcat 安装目录之外的其他目录中,第二种方式是直接部署到 Tomcat 中.
刚刚的测试工程的部署是使用的 Eclipse 的默认方式-使用工作空间元数据,使用这种方式项目是部署到了工作空间中,部署的项目不能够轻易找到,如果部署的项目越多,工作空间会越来越庞大.
下面我们使用自定义的目录来部署应用程序.按如下方式配置好后,在 Eclipse 中启动 Tomcat.
现在查看我们刚刚为 Server Path 指定的目录,可以发现,Server Path 相当于定义了另一个 Tomcat,如下图所示,Server Path 的目录里面多出了几个文件夹,这里除了没有 Tomcat 安装目录中的 bin 和 lib 目录以及一些 lisence,readme 等不重要的文件,其余都和 Tomcat 安装目录中的一样.这里进入 conf 目录同样可以修改一些该 Server 的配置,比如端口号等.
现在,我们将测试工程部署到 Tomcat.并在浏览器中访问,如下图.
此时,我们再查看我们刚刚指定的部署目录,发现根本就没有我们部署的工程,这是因为我们刚刚勾选了 serve modules without publishing,在不发布的情况下提供模块.
那么我们是如何能够访问我们的 Web 应用程序的呢?现在查看 conf/Catalina/localhost 目录,会发现多了一个 site.xml 文件,这是我们刚刚勾选了 publish module contextsto separate xml file 的结果.每部署一个应用,就会在这里产生一个对应的 xml 文件.该文件实际上是一个应用的 Context 配置文件,或者说是一个虚拟目录配置文件.打开 site.xml, 查看其内容,如下图.
docBase 配置了应用程序的物理路径,path 配置了应用程序的 Context-root 路径,是一个逻辑路径,reloadable 配置了可以自定重新加载,刚刚能够通过 http://localhost:8080/site/test 访问 TestServlet,正是这里的 PreResources 配置起的作用,它将我们项目中的类编译后的. class 文件挂载到了 / WEB-INF/classes 目录下.能够访问 Jsp 是因为,JSP 编译后的. class 文件都在下图中的目录下.
现在,我们再修改一下测试工程中的 TestServlet 的 URL 映射,改为 "/home",如下图所示.
修改完,Tomcat 将会 reaload 我们的测试项目,因为我们之前勾选了 Modules auto reload by defualt,所以项目的修改会反应到 Tomcat 中.以下是控制台的输出.
在浏览器中通过新的 url 访问,成功.
进一步地,我们将端口号修改为 80
然后在 hosts 文件(在 C:\Windows\System32\drivers\etc 目录下)中建立 ip 与域名的映射,可在本机通过自己的域名访问.
来源: http://www.92to.com/bangong/2018/01-22/33137710.html