上篇文章学习了第一个web程序的创建和编译过程。但是当我又从网上下载一份java web的代码进行学习时,遇到了一个问题:怎样把这个代码添加到eclipse里进行编译查看?经过查,发现File-->import->General->Existing Projects into Workspace选项可以导入工程。可是eclipse如何识别工程类型呢?上网查发现是通过.project文件中的nature标记表示该项目的类型的,另外还有.classpath文件的作用可查看http://book.51cto.com/art/201005/201446.htm。至此就明白了eclipse导入已存在的工程时为什么不需要指定工程类型了。
基于eclipse jee平台的Dynamic Web Project当点run on server时的执行过程是什么样的?参考此网址:http://wenku.baidu.com/view/99261afec8d376eeaeaa3112.html就明白了当点run as server时并没有把程序部署到tomcat webapps下。
那么如何部署一个java web程序呢?只需要export为war格式的文件然后copy放到tomcat安装目录下的webapps文件夹下,然后重启tomcat服务器。tomcat会自动解压此war文件到webapps目录这样就实现了部署,那么问题是如果在不让tomcat解压,直接把解压好的war文件放到webapps目录下是否可以?经测试可以。这样就理解了java web的部署过程,其实没什么神秘的和php等程序是一样的只要放到web服务器目录下即可。
学习java web编程,最好先了解java的基本知识和虚拟机原理等底层知识,这和c语言程序需要了解计算机硬件底层架构是一个道理。java的底层就是虚拟机。同时可以了解一些设计模式的知识。
WEB-INF简介
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 *.class文件,这些 *.class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便。web.xml文件为网站部署描述XML文件,对网站的部署非常重要。
Web-Inf文件夹中除了有classes文件夹和一个web.xml文件外、还有lib文件夹(用于存放需要的jar包)(用于配置,比如说用来配置过滤器等。)
ServletActionContext找不到是因为没有导入servlet-api包,那么如何导入servlet-api包?
eclipse配好Server中的Runtime Environments后,新建web项目在Target runtime中选你配好的Server就可以导入tomcat中所有包,包括servlet-api。