WEB应用程序指供浏览器访问的程序,通常也简称为web应用。application
一个web应用由多个静态web资源和动态web资源组成,如:
html、css、js文件
jsp文件、java程序、jar文件、
配置文件
……
组成web 应用程序的这些文件要部署在相应的目录层次中,根目录代表整个 web 应用程序的“根”。
-------------------------------------------------
如果lib中有一个jar包,该jar包中有一份字节码:cn.itcast.cd.util.StringUtils.class
同时在classes中也有一份字节码:cn.itcast.cd.util.StringUtils.class
问:优先加载谁? 找classes中的:
比如在commons-lang3.jar中有一个类org.apache.commons.lang3.ArrayUtils,代码有问题,我想修改他的源代码.
在项目中新建一个类:该类的包是org.apache.commons.lang3,类名是ArrayUtils.这样既可.
从JavaEE6开始(Tomcat7,Servlet3.0规范),JavaWeb应用下可以不需要web.xml文件了.(可以使用注解).
但是建议保留该文件:
注意:对于有些界面不是用户输入地址就能访问的,就应该旺仔WEB-INF目录下,通过servlet来请求到该界面。
搭建基于Eclipse的纯的JavaWeb项目:
步骤:
1,搭建一个Java项目:
2,在该项目下新建一个文件夹,表示根,名字为:webapp(名字随意)
3,在webapp下新建一个文件夹,名字为WEB-INF
4,在WEB-INF中新建一个文件夹,名字为classes
5,在WEB-INF中新建一个文件夹,名字为lib
6,去Tomcat根/conf目录下拷贝一个web.xml文件到WEB-INF下(只保留头和根元素);
7,改变该项目的输出目录:也就是改变classpath的路径,从默认的bin目录该变为webapp/WEB-INF/classs中;
8,搞定:
以后要把项目给别人,只给webapp目录.
给Eclipse安装Tomcat的插件:
装插件:
1.在需要被装插件的Eclipse根/dropins目录
2.在该目录下新建一个文本文件:里面的内容是
path=D:/DevelopTools/EclipsePlugins/Tomcat
3.建议修改该文本文件的名字为:tomcat.link
4.重新启动Eclipse.看效果,若看到3只可爱的小猫咪,表示插件安装成功.
5.但是这仅仅表示Eclipse的插件,不代表Tomcat服务器.得和真实的Tomcat服务器做关联.
6,就可以使用了.
部署JavaWeb项目:
方式一:
直接把应用的根目录,拷贝到Tomcat根/webapps下:
这是MyEclipse默认的部署方式:
缺点:该目录下的应用将会越来越多,启动Tomcat就变慢了.若其中有一个应用有问题,Tomcat就会启动失败.
解决方案:
对比给Eclipse安装插件:
1>.上述部署项目的方式,相对于把插件拷贝到Eclipse/plugins下;
2>.联想到给Eclipse安装插件的第二种方式,使用link文件来关联插件,告诉Eclipse你应该去哪里找插件.
把该思想运用到部署项目上来:(第二种方式)
方式二:
以配置文件的方式,告诉Tomcat应该把哪一个路径下的项目给部署起来.
方式二也有两种用法:
第一种:
1>.找到Tomcat根/conf目录下的server.xml文件:
2>.在server.xml文件中的Host元素之间,新建一个元素:
<Context path="pss"docBase="D:\JavaPros\pureWeb\webapp"/>
在部署的时候,也可以把path的值设置"";
<Context path=""docBase="D:\JavaPros\pureWeb\webapp"/>
改完之后,访问方式:
http://IP地址:端口号/资源的名字
3>.若存在多个<Context/>,必须保证多个Context的path值不能相同.
第二种:
从Tomcat5.5开始推荐使用另外的一种方式来部署项目:
1>.找到Tomcat根/conf/Catalina/localhost新建一个xml文件:比如abc.xml
内容是:<ContextdocBase="D:\JavaPros\pureWeb\webapp"/>
2>.此时该文件的名字,就相当于是第一种方式的path值(上下文名字)
访问: http://localhost/abc/index.html
其实:意思方式二的两种方式,其实是一个意思.
若当前部署的JavaWeb项目是一个纯的Java项目改装的:要记得在Tomcat-advanced中把当前需要部署的项目给勾起来.
若当前需要部署的项目就是一个Web项目则不需要勾选.