Javaweb学习笔记2 虚拟路径与虚拟主机
1. 虚拟路径
事实上文件不一定要被放入webapps中才能被识别,只要配置合适的虚拟路径,放在webapps文件夹以外的项目也能被识别。
1.1第一种配置方法(配置完需重启)
进入conf文件的server.xml中在host标签中配置
<Context docBase=" D:\study\JspProject" path=" /JspProject" />
docBase:实际路径(放哪都行)
path:虚拟路径(只要是该值的,则实际相当于访跳转问上面的实际路径)
虚拟路径有两种写法: -绝对路径
-相对路径(该相对路径是相对webapps的,也就是说默认放在webapps里的)
也就是说绝对路径D:\apache-tomcat-7.0.90\webapps\JspProject等价于相对路径/JspProject。所以当在浏览器中写localhost:8080/JspProject/index.jsp时因为其探测到"/Jsproject"后自动等价代换成为(D:/study/JspProjec/)index.jsp。即成功找到。
注:因为在host标签中有 <Host name="localhost" appBase="webapps">
所以当访问localhost:8080的时候就是访问webapps。本地的虚拟路径就是webapps,所以默认文件都在这里,所以上面的相对路径是相对webapps的。
1.2 第二种配置方法(配置无需重启)
进入conf文件夹中的Catalina文件夹,新建一个xml文件,文件名为项目名。例如JspProject.xml。在这个文件中写入<Context docBase=" D:\study\JspProject" path=" /JspProject" />即可。
2. 虚拟主机(可以使当你访问www.test.com时直接访问本机。)
2.1修改server.xml
<Engine name= "Catalina" defaultHost = "www.test.com" >(把默认引擎改了)
<Host appBase ="D:\study\JspProject" name ="www.test.com"/>
<Context docBase = "D:\study\JspProject" path="/">(默认访问根路径时就转换)
</Host>
<Host name ="localhost" appBase ="webapps" >(这是原来默认的)
</Host>
2.2修改本机的域名解析
在windows中system32中drivers中ect文件夹中的hosts文件中修改。
新增映射 127.0.0.1 www.test.com即可。
流程为www.test.com-----host找映射----server.xml找Engine的defaultHost---通过"/"映射到D:\study\JspProject