jsp(1)(tomcat:端口,目录,虚拟路径,项目格式,默认主页)
简介:web应用,供浏览器访问的的程序。由静态web资源(js/html/css)和动态web资源组成.
1.tomcat需要jvm支持(相当一个java程序)需要配置java的path.
(会自动查找JAVA_HOME,CATALINA_HOME环境变量的值,必须配置,或在startup.dat中指定,详情)
2.端口:http访问默认端口是80,访问可以不写端口就是此端口。
查看哪些端口被占用,dos:
netstat -ano //注意不是netstart
关闭端口:
可以通过关闭进程,有些需要关闭服务才行。
tomcat的默认端口是8080,修改默认在\conf\server.xml文件中修改。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
3.tomcat启动见:
4.tomcat的目录介绍:
注意:特别log目录,当启动tomcat出现错误一闪关闭,通过查看log,查找原因显得极其有用。
5.虚拟目录映射:
让web项目供外界访问,需要将web项目所在路径交给web服务器管理。这个过程就是虚拟路径映射。【多用于实际工作中】
(目的:tomcat服务器的安装路径文件可能没有权限访问修改,所以配置虚拟项目路径指向实际的项目路径(将项目放到该文件夹下))
该映射主要是在不同的xml文件中配置Context的属性。
具体介绍是主页中Documentation下的Tomcat Documentation中的Reference下的Configuration中的Containers下的Context
配置虚拟路径有上面5种方式:(特别注意配置信息的大小写区别)(详解第3种方式;可以不重启部署项目。)
(1.在conf/context.xml中被所有web应用加载,需要重启tomcat。
(2.在conf/服务引擎/主机名/context.xml.default中,被某个主机的所有web应用加载。
(3.在conf/服务引擎/主机名/ 任意xml文件中,文件名就是虚拟路径,实际路径在xml中配置。
并且支持多级虚拟路径如a#b#c.xml(用“#”隔开),配置路径后,无需重启tomcat。
特定xml命名成:Root.xml,即可以在Root.xml中设置访问缺省时项目的实际路径。生效需要重启tomcat。
(3.1:通过xml的文件名设置虚拟访问路径的方式:
如果conf下没有服务引擎文件夹,自己创建一个以及主机名和xml文件:
实际项目的路径:
a.xml中配置内容为: <Context docBase="e:/mytest"/> //xml的文件名a即是虚拟地址,实际地址为文件内容中的设置: e:/mytest 注意配置内容区别大小写的。
通过虚拟路径访问css.html的地址
http://localhost:8080/a/css.html
(3.2虚拟多级文件名访问设置
可以把xml配置的文件名改成:b#c#d.xml 访问的路径是:http://localhost:8080/b/c/d/css.html
(3.3缺省项目名的访问方式设置:(需要tomcat重启生效)
可以把xml配置的文件名设置成(字母必须大小):ROOT.xml 访问的路径为:http://localhost:8080/css.html
(4.还可以在/META-INF/context.xml中配置,(暂时只知道ROOT目录中有)
(5.在conf/server.xml中配置虚拟目录,该配置不会自动加载,生效需要重启tomcat。
(5.1.配置具体的虚拟路径:通过http://localhost:8080/itcast/,访问news目录中的内容
(5.2. 配置缺省的虚拟路径,将虚拟路径的名字设置成:没有内容。通过http://localhost:8080/ ,访问news目录中的内容
需要注意4个东西:
(1.虚拟路径。2.实际路径。3.标签必须结束。4.该配置在Host标签内)
通过虚拟路径访问news目录中index.html的网络地址是:http://localhost:8080/itcast/index.html
总结这5种方式(个人理解):
访问一个项目,
首先会在5的server.xml查找实际地址,
没找到分别在:1的context.xml查找,
根据引擎和主机名查找2的context.xml.default,
根据引擎和主机名查找3的.xml,
然后到4的appwebs项目路径中WEB-INF中查找配置。
(可以认为存在多个引擎和多个域名访问这个项目)
补充:Context的属性reloadable
表示如果项目有改动将自动加载,下面是mail项目是在server.xml的配置,表示该项目更改进行自动加载,如果配置在conf/Context.xml的Contex中,那么就是所有项目进行自动加载。
一般开发中不使用该属性,因为经常改动导致tomcat一直重新加载项目。
6.开发过程,项目只要放到webapps\下就可以访问了,默认访问的是其下的ROOT里面的项目。
(tomcat·会自动将该目录的文件做成映射,虚拟路径和实际文件名字弄成一样)
关于默认会访问root的原因是:
tomcat定义的根目录ROOT就是通过硬编码来实现的,其名字必须为ROOT才行,
(对于tomcat 4.1.30,在Tomcat4_1\src\catalina\src\share\org\apache\catalina\startup\HostConfig.java 430 >> 第430行有这句:if(file.equals("ROOT"){})
但其context的属性docBase,path可以设置(见5.2),
7.tomcat的项目文件存放的格式有明确的规定:
设置项目的首页,需要修改WEB-INF下的web.xml文件:(xml头信息可以从conf下的web.xml中获取)
如上将1.html配置成项目的首页,即访问该项目不指定具体页面就显示该页面。
补充:web.xml的作用:
配置默认首页
servlet和网页的映射
资源文件的映射
8.要实现直接访问域名就能访问某个页面需要配置3个地方:
1.端口改成80(server.xml),
2.虚拟路径改成缺省的(server.xml),
3.设置默认首页(web.xml)。