以前在学java的时候总是在想java是java代码,,web工程是动态的html组合,那么java程序不是只能进行编写c/s的东西了吗。
你说这web界面和java程序有什么关系啊,为什么java程序能够进行编写web程序呢。
近日看书终于明白了其中的原理:
先说一下java,servlet,javabean,jsp之间的关系吧
其实吧这几个东西都是一个种啊
java程序就不说了,servlet,javabean,jsp其实本质都是java程序,是先人们从java程序中进行分离出来的东西
servlet是作为web工程的控制中心,是在java类的基础上由先人们加了和html服务器进行交互的一些类
javabean作为web工程的逻辑中心, javabean呢是依照先人们的规定,进行特定编写的java类文件
jsp作为web工程的显示中心(这就是MVC),在服务器进行运行的时候会进行转化为servlet文件的
有人说了jsp怎么也是java程序呢,比如我们用的是tomcate运行的程序,那么在运行jsp文件的时候就会转换为servlet(其实也就是java类)
在\tomcate安装目录下\work\Catalina\localhost\webDemo\org\apache\jsp可以看到jsp生成的java文件和class文件
当然这三者都可自己进行编写,这样的话我们进行建立web工程的时候,其本质还是在java类的基础进行的各个类文件之间的交互,当然运行的可定时class文件
手动编译程序+tomcate
既然java程序在最后运行的时候是class文件,那么我们肯定得先把java源文件编译为class文件吧,在这些java文件中可定有用到web项目中的一些已有的类,或者自己建立的类。
那么我们如何才能把这些单独的类文件在进行编译的时候让编译器能够识别呢,java程序在进行运行的时候,是从classpath的环境变量中进行查找他所需要的类的,因此在当引用其他类时报错说类无法找到那就要看你的classpath时候配置正确了。
(在这里要说明的一点是在进行编译时可能会用到一些其他jar包,也是需要将这些jar包进行添加到classpath中的,当然这是一个复杂的工程)
在生成好class文件后,就要进行运行了,比如我们用的是tomcate吧,那么tomcate运行是怎么回事呢,大家都知道tomcate里面有几个文件夹如bin,conf,classes等文件夹,那么tomcate在进行找类的时候肯定是从classes中找到所要的类了。
myeclipse+tomcate
myeclipse在进行编译文件时要进行添加所依赖的类其实本质呢,是起到和配置classpath环境变量一样的效果,让各个类文件之间能够进行互相的访问,当然包括将将java源程序转化为class文件,但是他本身只是一个编写web工程的工具并不能进行运行web工程,还是得依靠tomcate进行运行。
我们在进行部署tomcate的时候本质就是把workspace中编译好的程序进行复制的过程,当然只是web工程的赋值。