图片加载中...

图片加载中... 中国高端php培训领导品牌

图片加载中...名企定向委培

首页>新闻动态>WEB前端技术文章

Web初学-Web应用细节

更新时间:2020-04-15

一、web应用程序简介
WEB应用程序指供浏览器访问的程序,通常也简称为web应用。
 
一个web应用由多个静态web资源和动态web资源组成,如: 
html、css、js文件 
Jsp文件、java程序、支持jar包、 
配置文件 
…… 
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
 
SUN的Servlet规范对JavaWeb应用作了这样的定义“JavaWeb应用由一组Servlet/JSP、HTML文件、相关Java类以及其他可以绑定的资源构成,它可以在由各种供应商提供的符合Servlet规范的Servlet容器中运行”。 
在JavaWeb应用中可以包含以下内容: 
Servlet组件:标准Servlet接口的实现类,运行在服务器端,包含了被Servlet容器动态调用的程序代码。 
JSP组件:包含Java程序代码的HTML文档,运行在服务器端。当客户端请求访问JSP文件时,Servlet容器先把它编译成Servlet类,然后动态调用它的程序代码。 
相关的Java类:开发人员自定义的与Web应用相关的Java类。 
静态文档:存放在服务器端的文件系统中,如HTML文件、图片文件和声音文件等。当客户端请求访问这些文件时,Servlet容器会先先从服务器上的本地文件系统中读取这些文件,再把它们发送给客户端。 
客户端类:有客户端来运行的类。Applet是典型的客户端类。当客户请求访问Applet时,Servlet容器先从服务器上的本地文件系统中读取Applet的class类文件的数据,再把它发送到客户端,由客户端来运行Applet。 
web.xml文件:JavaWeb应用的配置文件,采用XML格式。
 
二、web应用的组成结构
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。 
main—–web应用所在的目录 
|—-html/css/javascript/jsp等文件(一般都是静态文件,注意这里面的文件都可以被用户访问到!!!不安全) 
|—-WEB-INF目录 
| | 
| |—-calsses目录(java类) 
| |—-lib目录(一些jar组件包) 
| |—-web.xml(这是web应用的配置文件,非常重要,也非常实用便捷)
 
在WEB-INF目录的classes及lib子目录下,都可以存放java类文件。在运行时,Servlet容器的类加载器先加载classes目录下的类,再加载lib目录下的JAR文件中的类。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。 
我们注意到Tomcat的安装目录下也有一个lib目录,这个与Web应用中的lib目录的区别在于: 
Tomcat的lib子目录:存放的JAR文件不仅能被Tomcat访问,还能被所有在Tomcat中发布的JavaWeb应用访问。 
JavaWeb应用的lib子目录:存放的JAR文件只能被当前JavaWeb应用访问。 
假如Tomcat类加载器要加载一个MyClass的类,它会按照以下先后顺序到各个目录中去查找MyClass的class文件,直到找到为止,如果所有目录中都不存在MyClass.class的文件,则会抛出异常: 
1、在JavaWeb应用的WEB-INF/classes中查找MyClass.class文件。 
2、在JavaWeb应用的 WEB-INF/lib目录下的JAR文件中查找MyClass.class文件。 
3、在Tomcat的lib子目录下直接查找MyClass.class文件。 
4、在Tomcat的lib子目录下JAR的文件中查找MyClass.class文件。 
Note: 
Tomcat6.x与Tomcat5.x的目录结构有所区别。在Tomcat5.x版本中,Tomcat允许在server/lib目录、common/lib和shared/lib目录下存放JAR文件,这3个目录的区别在于: 
在server/lib目录下的JAR文件只可被Tomcat访问。 
在shared/lib目录下的JAR文件可以被所有的JavaWeb应用访问,但不能被Tomcat访问。 
在common/lib目录下的JAR文件可以被Tomcat和所有JavaWeb应用访问。
分享到:

上一篇:学习Web前端知识,需要从那几个方面入手?


下一篇:前端是做什么的?工作内容有哪些?

相关课程MORE>

图片加载中

WEB高级前端+HTML5

前端开发就是利用各种Web技术进行产品的界面开发...

图片加载中

UI交互式设计师

让学生快速达到一名UI界面设计师的标准...

图片加载中

PHP高级架构工程师

广阔的发展空间,需要新型的技术人员...

图片加载中

高级python开发

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本...

图片加载中TEL:010-83650488

图片加载中

在线咨询

电话咨询