《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--一个WEB应用的目录结构以及如何发布WEB应用

这章节主要学习:如何使用tomcat来发布一个web应用:helloapp

1.tomcat/conf/server.xml中的如下配置

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        ......
      </Host>

决定了:名字为localhost的虚拟主机,其应用的缺省目录是webapps;也就是说:想要在此虚拟主机上发布某一个web应用(比如这里的helloapp),则需要将此web应用的所在目录放到webapps目录中。而一个web应用的缺省入口,就是该web应用的根目录名。这就是说,可以访问http://localhost:8080/helloapp

2.在helloapp这个web应用中,其自身的配置文件是 helloapp/WEB-INF/web.xml文件(此文件内容是区分大小写的),其内容为:

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!DOCTYPE web-app PUBLIC
  '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
  'http://java.sun.com/j2ee/dtds/web-app_2_3.dtd'>
 
<web-app>
 
  <servlet>
    <servlet-name>dispatcher</servlet-name>  //用于为servlet类定义一个名字,这样当在html中看到dispatcher,就知道它表示一个servlet类了
    <servlet-class>mypack.DispatcherServlet</servlet-class> //用于表示此servlet类的完整类名(也包括包名)。这个类名同时也就告诉了到哪里可以找到该类(helloapp/WEB-INF/classes/mypack/DispatcherServlet.class)
  </servlet>
 
  <servlet-mapping>   //映射可支持通配符,一个servlet可以对应多个servlet-mapping
    <servlet-name>dispatcher</servlet-name>  //用于指定要进行映射的servlet的名称。需要和上面的<servlet>中的名称对应,这样才能找到实际的servlet类
    <url-pattern>/dispatcher</url-pattern>  //用于指定此servlet在URL上的映射,即相对(相对是相对此web应用的缺省入口)URL路径。这样访问http://localhost:8080/helloapp/dispatcher就可以访问此servlet了
  </servlet-mapping>
 
  <welcome-file-list>
    <welcome-file>login.htm </welcome-file> 
  </welcome-file-list>
 //这里设置了:此web应用的默认主页。即若客户端访问:http://localhost:8080/helloapp/ (注意:这是一个目录),就会默认默认定位到此文件:login.htm;这与访问http://localhost:8080/helloapp/login.htm是一样的效果


  <taglib>  //定义jsp标签的位置
    <taglib-uri>/mytaglib</taglib-uri> 
    <taglib-location>/WEB-INF/mytaglib.tld</taglib-location>  //指定TLD文件的存放位置
  </taglib>
 
</web-app>

3.在servlet类的定义实现中,通过对输入的ServletRequest对象(来自客户端发出的http请求正文)进行再次封装,就可以将此ServletRequest对象再转发给某个jsp文件。在由此jsp文件处理后,在通过ServletResponse对象获得处理结果,并将此结果交给客户端。

4.tomcat可以运行:A.采用开放式目录结构的web应用(即非压缩的);B.web应用的打包文件(WAR文件)。开发完毕的web应用,应该是经过打包(用jar cvf命令进行打包)后,发布WAR文件。tomcat启动后,会把webapps目录下的所有WAR文件自动展开为开放式的目录结构(因此,webapps中不能提前存在同名目录)

5.如果不想将web应用发布到默认的webapps目录中,而是发布到其他目录中,在需要使用<Context>元素来告知新的位置(docBase)

6.如果要使用JSP标签,则需要如下组成:一个处理标签的类(class文件)+一个TLD文件+在web.xml中配置<taglib>元素+在jsp文件中使用标签<前缀名:标签名>

原文地址:https://www.cnblogs.com/lagujw/p/3588633.html