Servlet第一篇【Tomcat的使用】

webapps目录

用来管理web应用

案例:1(访问html页面)
在webapps目录下新建hello目录
在hello目录下创建hello01.html
运行Tomcat
localhost:8080/hello/hello01.html(默认端口8080)

案例:2(自定义主页)
在webapps目录下新建hello目录
在hello目录下创建WEB-INF目录
在WEB-INF目录下新建web.xml(可以复制ROOT/WEB-INF目录下的web.xml)

      <welcome-file-list>
         <welcome-file>hello02.html</welcomefile>
      </welcome-file-list>

在hello目录下分别创建hello01.html,hello02.html
运行Tomcat
localhost:8080/hello

虚拟目录

为什么要使用虚拟目录?
答:防止磁盘不够用;为了更好的管理

什么叫虚拟目录?
答:把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射

案例:1(访问其它磁盘的web应用,方式一)
D盘下新建test目录(这是一个web应用)
test目录下新建test.html
在config下的server.xml文件里添加

    <!--在<Host></Host>标签内添加--->
    <Context path="/test" docBase="D:\test" reloadable="true" crossContext="true" debug="0"/>

运行Tomcat
localhost:8080/test/test.html

  • path:指定访问该 Web 应用的 URL 入口。

  • docBase:指定 Web 应用的文件路径,可以给定绝对路径,也可以给定相对于的appBase 属性的相对路径,如果 Web 应用采用开放目录结构,则指定 Web 应用的根目录,如果 Web 应用是个 war 文件,则指定 war 文件的路径。(指定项目所在地址)

  • reloadable:如果这个属性设为 true,tomcat 服务器在运行状态下会监视在WEB-INF/classes 和 WEB-INF/lib 目录下 class 文件的改动,如果监测到有 class 文件被更新的,服务器会自动重新加载 Web 应用。

  • crossContext:如果想在应用内调用 ServletContext.getContext()来返回在该虚拟主机上运行的其他 web application 的 request dispatcher,设为 true。在安全性很重要的环境中设为 false,使得 getContext()总是返回 null。缺省值为 false。

  • debug:与这个 Engine 关联的 Logger 记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为 0。

这个方式一般在设置后都需要重启服务器才有效(有时候即使设置了reloadable=“true” 也需要重新启动)

案例:2(访问其它磁盘的web应用,方式二,推荐使用,不需要重启服务器)
在D:\test目录下创建hello.html
在conf\Catalina\localhost新建a.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--注意此文件名将作为Context中path的属性值,不管文件里的path属性值如何设置也是无效的-->  
<Context docBase="D:\test"/>

运行Tomcat
localhost:8080/a/hello.html

如果需要分层虚拟站点,可以将文件名改成a#b#c,访问分层虚拟站点时用localhost:8080/a/b/c

临时域名

在C:\Windows\System32\drivers\etc下hosts配置临时域名

127.0.0.1      longhuanzhu

longhuanzhu:8080/a/hello.html

虚拟主机

什么是虚拟主机?
答:多个不同域名的网站共存在一个tomcat服务器中

在D:\a(该目录即为虚拟主机目录)下新建b\hello.html(hello.html不能直接放在虚拟主机目录下)

127.0.0.1      www.woaini.com

在config目录下的server.xml下配置

<Host name="www.woaini.com" appBase="D:\a" unpackWARs="true" autoDeploy="true">
</Host>

www.woaini.com:8080/b/hello.html

控制台日志乱码问题

java.util.logging.ConsoleHandler.encoding = UTF-8
修改为
java.util.logging.ConsoleHandler.encoding = GBK

get/post乱码问题

get/post乱码问题

参考链接:https://www.cnblogs.com/linzedian/p/13640105.html

posted @ 2020-04-01 19:37  幻竹  阅读(152)  评论(0)    收藏  举报