Apache Tomcat教程

如果要在Web服务器上运行Java Servlet或JSP页面,则可能需要安装Apache Tomcat服务器。如果您熟悉Apache,Tomcat将作为第二种自然。Tomcat是一个可用于Linux和Windows操作系统的开源,可用的HTTP服务器。学习系统的最佳方法是创建一个简单的Web应用程序。本文通过您的第一个JSP设置来浏览您的第一个JSP设置,让您熟悉Tomcat平台。

安装

有关如何安装和配置Apache Tomcat的详细说明被认为是本教程的范围。但是,安装过程中必须遵循以下轮廓:

要安装Tomcat的目标计算机必须具有可用的Java运行时环境。出于本教程的目的,我们假设目标操作系统是Microsoft Windows(XP向上),并且已在其中安装了来自Oracle Technologies的Java 7(32位)。

必须下载和安装Apache Tomcat的最新二进制分发。由于目标操作系统是Windows,因此建议使用以.zip扩展名结尾的分发文件。出于本教程的目的,假设目标安装文件夹是C:\ Tomcat。

请注意,使用框中提供的默认配置集,Tomcat安装将在端口8080上运行。这是为了避免与目标计算机上已安装的任何现有Web服务器的端口争用。

通过在Udemy.com上获取课程了解有关Apache Tomcat的更多信息

文件夹结构

安装后,文件夹C:\ Tomcat的内容应包括以下内容:

宾 - 启动和停止Apache Tomcat所需的启动脚本。

Conf - Apache Tomcat的配置文件。

lib - 包含必要的J2EE规范和Apache Tomcat实现的JAR文件

WebApps - 包含在此安装Tomcat上托管的所有Web应用程序的根文件夹。

了解Web应用程序部署

对于部署在Apache Tomcat上的每个Web应用程序,您将在包含相应实现的WebApps文件夹下看到一个子文件夹。子文件夹的名称用作用于调用应用程序的URL中的相对路径。

例如,如果Web应用程序放在WebApp下的名为Test的文件夹中,则可以通过URL,http:// localhost:8080 /测试从Web浏览器中访问它。这假设Web浏览器从托管Tomcat Server(Developer Setup)的同一台计算机启动。

它是常规的,可以在以.war扩展名结尾的单个二进制文件中分发完整的Web应用程序。毫不奇怪,这个文件通过俗称作为战争文件。WAR文件基本上是一个zip文件,内部具有与webapps目录下的应用程序子文件夹相同的文件夹结构和内容。

习惯性地将WAT文件放在Tomcat安装的WebApps文件夹中。下次运行Tomcat,它会自动将WAR文件提取到WebApp下的子文件夹中。所有后续行为都假定子文件夹是Web应用程序的根目录。

例如,给定带有WebApps文件夹中名称'test.war'的WAR文件,Tomcat Server将自动将相同的子文件夹中提取到WebApps文件夹下的子文件夹中。此后,通过URL,http:// localhost:8080 / test,可以从Web浏览器内访问Web应用程序。

请注意,如果已存在名称“测试”的子文件夹,则未提取WAR文件,则提供“测试”文件夹的时间戳比文件'test.war'更旧。

创建我们的Web应用程序

出于本教程的目的,我们的Web应用程序名为“MyFirstWebApp”。这意味着访问此应用程序的URL是http:// localhost:8080 / myfirstwebapp。

步骤1:

我们的第一个Web应用程序将以扩展格式部署,而不是WAR文件部署。为此,请在C:\ tomcat \ webapps下创建名为'myfirstwebapp'的文件夹。

根据J2EE规范,任何Web应用程序至少必须具有名为Web-Inf和文件名为Web.xml的文件的子文件夹。此文件称为Web应用程序装配描述符,并包含Tomcat服务器的自定义指令,用于使用相应的Web应用程序。

第2步:

创建名为'c:\ tomcat \ webapps \ myfirstwebapp \ web-inf'的文件夹。然后触发您最喜欢的文本编辑器以键入以下XML代码:

<?xml version =“1.0”编码=“utf-8”?>   myfirsetwebapp  我的第一个web应用程序。 

Save the file as ‘C:\Tomcat\webapps\myfirstwebapp\WEB-INF\web.xml’ Note that since we will be dealing with only simple JSP for this tutorial, further instructions in the web.xml file (e.g. servlet and filter configurations) are not necessary.

通过在Udemy.com上获取课程了解Apache Hadoop

第3步:

本教程的JSP页面将在屏幕上显示,当它调用指向此页面的URL时,从浏览器收到的HTTP详细信息。触起您最喜欢的文本编辑器以输入以下内容:

<%@页面导入=“java.util。*”%>    echo jsp </ title> </ head> <body> <h1>传入http请求</ h1> <表边框=“0”CellPadding =“3”CellSpacing =“0”宽度=“100%”> <%枚举Ename = Request.getheArname();while(encame.hasmoreElements()){String name =(字符串)ename.nextElement();string值= normalize(请求.getheader(name));%> <tr> <td> <%= name%> </ td> <td> <%=值%> </ td> </ td> </ tr> <%}%> </ table> </ body> </html> <%私有字符串归一化(StringBuffer){StringBuffer行= new StringBuffer();for(int i = 0; i <value.length(); i ++){char c = value.charat(i);line.append(c);if(c ==';'){line.append(“<br>”);}}返回line.tostring();}%></pre>
    <p>在'c:\ tomcat \ webapps \ myfirstwebapp \ index.jsp'下保存此文件。回想一下,使用相对路径调用Web应用程序时,返回具有索引(.htm | .html | .html | .jsp)的文件的文件。http:// localhost:8080 /测试,不提到特定页面或URL。</p>
    <p>现在打开Web浏览器并加载URL http:// localhost:8080 / myfirstwebapp。这将导致“index.jsp”文件在服务器上加载和执行,并将输出HTML文档发送到浏览器以进行显示。浏览器上显示的页面显示将作为HTTP请求的一部分发送到页面的标题。</p>
    <p><a title="通过在Udemy.com上获取课程了解Apache Hadoop的所有内容" href="https://www.udemy.com/course/apache-hadoop-essential-training/?tc=blog.apachetomcattutorial">通过在Udemy.com上获取课程了解Apache Hadoop的所有内容</a></p>
    <p><strong>结论</strong></p>
    <p>本文向您展示了如何创建和运行一个对调试目的有用的基本JSP。所有相关的服务器端逻辑以及UI数据都存在于同一文件中。在现实生活中,您应该考虑拥有多个JSP页面和B)的更优雅的方法,B)使所有执行逻辑移入java类中,从JSP页面中加载和调用。</p>
    <footer class="article__meta-data">
     <p><em>页面上次更新:<span class="article__page-last-updated">2014年6月</span></em></p>
     <div class="footer-author-border-top">
      <div class="footer-author-section">
       <div class="row">
        <div class="author-flex-container">
         <div class="author-heading-container">
          <div class="author-avatar-section">
           <img alt="" src="https://secure.gravatar.com/avatar/3f6f55e52a48c823d1f7ad223f98ddf3?s=50&d=blank&r=g" srcset="https://secure.gravatar.com/avatar/3f6f55e52a48c823d1f7ad223f98ddf3?s=100&d=blank&r=g 2x" class="avatar avatar-50 photo" height="50" width="50" loading="lazy">
          </div>
          <div class="author-text-section">
           <div class="article__author-name">
            Udemy编辑器</div>
          </div>
         </div>
        </div>
       </div>
       <div class="article__author-links-header">
        Udemy编辑的最新文章</div>
       <ul>
        <li><a href="//www.mostynfirm.com/how-to-graph-in-excel/">如何在Microsoft Excel中制作条形图:逐步的教程</a></li>
        <li><a href="//www.mostynfirm.com/conflict-management-styles/">5解决工作场所挑战的冲突管理方式</a></li>
        <li><a href="//www.mostynfirm.com/communication-skills-in-the-workplace/">工作场所有效沟通的终极指南</a></li>
       </ul>
      </div>
     </div>
     <div class="recommended-articles">
      <h3>推荐的文章</h3>
      <div class="row category-links__article-row slider3">
       <div class="article-card article-card__border-right">
        <div class="article-card__content">
         <div class="article-card__category">
          betwayapp下载安装
         </div>
         <h2 class="article-card__title"><a href="//www.mostynfirm.com/jsp-import-class/" target="_self">JSP中导入类的基本介绍</a></h2>
         <div class="article-card__author-name">
          Udemy编辑器</div>
         <div class="article-card__excerpt"></div>
        </div>
       </div>
      </div>
     </div>
    </footer>
   </div>
   <div class="modal fade" id="shareModal" tabindex="-1" role="dialog" aria-labelledby="shareModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
     <div class="modal-content">
      <div class="modal-header align-items-center">
       <h5 class="modal-title" id="shareModalLabel">分享这篇文章</h5>
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true"><img src="//www.mostynfirm.com/wp-content/themes/udemyblog/img/close_icon.svg" alt="关闭图标"></span></button>
      </div>
      <div class="modal-body">
       <ul class="share-modal__icon-list list-unstyled a2a_kit">
        <li>
         <div class="input-group share-modal__input">
          <input id="share-copy-url" type="text" class="form-control share-modal__copy-input" value="//www.mostynfirm.com/apache-tomcat-tutorial." aria-label="Copy share link" aria-describedby="">
          <div class="input-group-append">
           <button class="btn btn-outline-secondary btn-share-modal" data-clipboard-target="#share-copy-url" type="button">复制</button>
          </div>
         </div><p id="copy-success-msg" class="copy-tooltip" data-tooltip="Copied!"></p><p id="copy-error-msg" class="copy-tooltip copy-tooltip--error" data-tooltip="Unknown error"></p></li>
        <li><a class="a2a_button_facebook"><span class="share-modal__icon fb-icon"><img src="//www.mostynfirm.com/wp-content/themes/udemyblog/img/fb_icon.svg" alt="Facebook图标"></span></a></li>
        <li><a class="a2a_button_twitter"><span class="share-modal__icon twitter-icon"><img src="//www.mostynfirm.com/wp-content/themes/udemyblog/img/twitter_icon.svg" alt="Twitter图标"></span></a></li>
        <li><a class="a2a_button_email"><span class="share-modal__icon email-icon"><img src="//www.mostynfirm.com/wp-content/themes/udemyblog/img/email_icon.svg" alt="电子邮件图标"></span></a></li>
       </ul>
      </div>
     </div>
    </div>
   </div>
   <div id="default-courses-module" class="full-width-override module-block default-module courses-block my-5">
    <div class="container">
     <div class="">
      <div class="course-card course-card--single">
       <h3 class="courses-block__title">特色课程</h3>
       <div class="single-course-flex">
        <div>
         <a href="https://www.udemy.com/course/jsp-tutorial/" tabindex="0" target="_blank" rel="noopener">
          <div class="course-card__image course-card__image--single" style="background-image: url(https://img-c.udemycdn.com/course/304x171/618736_237d_5.jpg?Expires=1622001478&Signature=Btnf9CzJqFB-V0UwRRTqiELvTPqt750lYYAdKg1otqt80lvWYRDPN2WX4oXDiavGrWX722YuXL8sSYLryC0GKipng1nNH6Hnos2DTJrY6LXNoWx9wEd9EWOb0z3~L9sTeCB94WAMbzGmlHlflMP5j9TWJsmUKQuW~wYhftI4MK8tXQZIwAQRyFumyPPeXKbMnEx4WkZCEp3woUqsBd5hYw6puPVVsuIpjsT~W0DpRx43eKDtcXWnTl23emxDmMOYS4ETqpGCxWsLe4LwJzw7pZpeNR36OMWUNfLR-s~Cvq2A5UN4WcFRvQwDgI4Vj2G9ZbD3BjNNbOMIVbmAWayj1g__&Key-Pair-Id=APKAITJV77WS5ZT7262A);"></div></a>
        </div>
        <div class="course-card-textarea flex-grow-1">
         <a class="course-card__title course-card__title--single" href="https://www.udemy.com/course/jsp-tutorial/" target="_blank" rel="noopener">JSP,Servlets和JDBC for初学者:构建数据库应用程序</a>
         <p class="course-card__date course-card__date--single">最后更新了4月2021年</p>
         <div class="course-card__badge course-card__badge--bestseller">
          畅销书</div>
         <span class="course-card__meta">
          <ul class="list-unstyled course-card__meta-list">
           <li>9个小时</li>
           <li>118讲座</li>
           <li>各级</li>
          </ul></span>
         <div class="course-card__rating course-card__rating--single">
          <span class="star-rating-container"><span class="star-rating__star"></span><span class="star-rating__star"></span><span class="star-rating__star"></span><span class="star-rating__star"></span><span class="star-rating__star star-rating__star--halffilled"></span></span>
          <span class="course-card__rating-number course-card__rating-number--single">4.7</span>
          <span class="course-card__num_reviews">(8,078)</span>
         </div>
         <p class="course-card__excerpt">JSP:涵盖JSP 2.3和Servlet 3.1  - 最受欢迎的JSP / Servlet课程|<span class="course-card__instructors--single">乍得达比</span></p>
         <a class="btn btn-primary btn-primary--single-course" href="https://www.udemy.com/course/jsp-tutorial/" target="_blank" rel="noopener">探索课程</a>
        </div>
       </div>
      </div>
     </div>
    </div>
   </div>
   <div id="default-topics-module" class="full-width-override module-block default-module topics-block my-5">
    <h3 class="topics-block__title">JSP学生还学习</h3>
    <div class="topics-block-list-container">
     <a class="btn" href="https://www.udemy.com/topic/servlet/" target="_blank" rel="noopener">servlet.</a>
     <a class="btn" href="https://www.udemy.com/topic/java-web-services/" target="_blank" rel="noopener">Java Web服务</a>
     <a class="btn" href="https://www.udemy.com/topic/jdbc/" target="_blank" rel="noopener">JDBC.</a>
     <a class="btn" href="https://www.udemy.com/topic/java-ee/" target="_blank" rel="noopener">Java EE.</a>
     <a class="btn" href="https://www.udemy.com/topic/spring-framework/" target="_blank" rel="noopener">春天框架</a>
     <a class="btn" href="https://www.udemy.com/topic/spring-boot/" target="_blank" rel="noopener">春靴子</a>
     <a class="btn" href="https://www.udemy.com/topic/hibernate/" target="_blank" rel="noopener">冬眠</a>
     <a class="btn" href="https://www.udemy.com/topic/java/" target="_blank" rel="noopener">java.</a>
     <a class="btn" href="https://www.udemy.com/topic/spring-mvc/" target="_blank" rel="noopener">春天MVC</a>
     <a class="btn" href="https://www.udemy.com/topic/jsf/" target="_blank" rel="noopener">JSF.</a>
     <a class="btn" href="https://www.udemy.com/topic/javafx/" target="_blank" rel="noopener">javafx.</a>
     <a class="btn" href="https://www.udemy.com/topic/apache-maven/" target="_blank" rel="noopener">Apache maven.</a>
     <a class="btn" href="https://www.udemy.com/topic/jpa/" target="_blank" rel="noopener">JPA.</a>
     <a class="btn" href="https://www.udemy.com/topic/java-se/" target="_blank" rel="noopener">java se.</a>
    </div>
   </div>
   <div id="default-demo-module" class="full-width-override module-block default-module cta-module-block bg-color-green-500 my-5">
    <h2 class="cta-module-block__title">赋予你的团队。引领行业。</h2>
    <div class="cta-module-block__content">
     <p></p>
     <p>通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。</p>
     <p></p>
    </div>
    <a class="btn btn-primary btn-primary--cta solid" href="https://business.udemy.com/request-demo/" target="_blank">请求演示</a>
   </div>
  </article>
  <footer class="page-footer">
   <div class="teach-section">
    <div class="container">
     <div class="row align-items-center">
      <div class="col-sm-12 col-md-6">
       <h3 class="footer-teach__title">在网上教世界</h3>
       <div class="footer-teach__content">
        创建一个在线视频课程,到达全球的学生,赚钱。</div>
      </div>
      <div class="col-sm-12 col-md-6 text-md-right">
       <a class="btn btn-primary btn-primary--teach" target="_blank" rel="noopener" href="https://www.udemy.com/teaching/?ref=teach_header">教授UeDemy.</a>
      </div>
     </div>
    </div>
   </div>
   <hr>
   <div class="container footer_links">
    <div class="row">
     <div class="col-md-2">
      <nav class="nav-col nav-col--one">
       <div class="menu-footer-menu-column-one-container">
        <ul id="menu-footer-menu-column-one" class="list-unstyled">
         <li id="menu-item-203" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-203"><a href="https://business.udemy.com/?locale=en_US&ref=footer&mx_pg=clp-unknown">Udemy for Business.</a></li>
         <li id="menu-item-204" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-204"><a href="https://www.udemy.com/teaching/?ref=teach_footer">教授UeDemy.</a></li>
         <li id="menu-item-205" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-205"><a href="https://www.udemy.com/mobile/">Udemy应用程序</a></li>
         <li id="menu-item-206" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-206"><a href="https://about.udemy.com/?locale=en-us">关于我们</a></li>
        </ul>
       </div>
      </nav>
     </div>
     <hr class="w-100 clearfix d-md-none">
     <div class="col-md-2 mx-auto">
      <nav class="nav-col nav-col--two">
       <div class="menu-footer-menu-column-two-container">
        <ul id="menu-footer-menu-column-two" class="list-unstyled">
         <li id="menu-item-207" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-207"><a href="https://about.udemy.com/careers/?locale=en-us">职业生涯</a></li>
         <li id="menu-item-208" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-208"><a href="//www.mostynfirm.com">博客</a></li>
         <li id="menu-item-209" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-209"><a href="https://support.udemy.com/hc/en-us">帮助和支持</a></li>
         <li id="menu-item-210" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-210"><a href="https://www.udemy.com/affiliate/">联盟</a></li>
        </ul>
       </div>
      </nav>
     </div>
     <hr class="w-100 clearfix d-md-none">
     <div class="col-md-2 mx-auto">
      <nav class="nav-col nav-col--three">
       <div class="menu-footer-menu-column-three-container">
        <ul id="menu-footer-menu-column-three" class="list-unstyled">
         <li id="menu-item-211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-211"><a href="https://www.udemy.com/sitemap/">网站地图</a></li>
         <li id="menu-item-212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-212"><a href="https://www.udemy.com/popular-courses/">流行课程</a></li>
        </ul>
       </div>
      </nav>
     </div>
     <hr class="w-100 clearfix d-md-none">
     <div class="col-md-3"></div>
    </div>
   </div>
   <div class="container footer_links--mobile">
    <nav>
     <div class="menu-footer-menu-mobile-container">
      <ul id="menu-footer-menu-mobile" class="list-unstyled">
       <li id="menu-item-152137" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152137"><a href="https://www.udemy.com/terms/">术语</a></li>
       <li id="menu-item-152138" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152138"><a href="https://www.udemy.com/terms/privacy/">隐私政策和饼干政策</a></li>
       <li id="menu-item-152139" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152139"><a href="https://www.udemy.com/sitemap/">网站地图</a></li>
       <li id="menu-item-152140" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152140"><a href="https://www.udemy.com/popular-courses/">特色课程</a></li>
       <li id="menu-item-152141" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152141"><a href="https://udemy.app.link/garBkjjtDO">下载这个软件</a></li>
      </ul>
     </div>
    </nav>
   </div>
   <hr class="footer-links__hr">
   <div class="container copyright-section">
    <div class="row">
     <div class="col-sm-5">
      <a class="navbar-brand" href="//www.mostynfirm.com/"><img class="logo" src="https://www.udemy.com/staticx/udemy/images/v6/logo-coral.svg" alt="betway体育官网下载"><span class="copyright">©2021 Udemy,Inc。</span></a>
     </div>
     <div class="col-sm-7 privacy-links">
      <span class="terms align-middle"><a class="mr-2" href="https://www.udemy.com/terms/">术语</a><a href="https://www.udemy.com/terms/privacy/">隐私政策和饼干政策</a></span>
     </div>
    </div>
   </div>
  </footer>
  <div class="mx_pg" data-mx_pg="blog_page_data-science"></div>
 </body>
</html>