1,servlet是什么?
我理解是由web访问触发,tomcat调用的与web进行交互的一个应用程序。只不过是用java开发,相对cgi开销较小而已。
2,servlet的开发环境如何搭建。
开发环境是:eclipse+tomcat插件。插件安装很简单,去http://www.eclipsetotale.com/tomcatPlugin.html下载插件,复制到eclipse目前的plugins目录下,重启eclipse即可。主要是插件安装好后,去eclipse>windows>preferences找到tomcat配置一下,配置tomcat服务程序的位置(以便编译时找到相应的lib)。以及"context declaration mode",这个是定义资源访问配置方式,即配置它的URI名称和对应的位置,这个就跟iis配置虚拟目录一个含义,只不过这里有两种方式,选择默义的即可.
3,tomcat工程程序的目录结构,新开发的Web应用如何部署。
用eclipse新建一个tomcat工程,工程的目录默认生成了:bin,WEB-INF,src,work
bin目录:作用放一些应用的配置相关程序?目前我没有到。
src目录:源码目录?
work目录:这个有一用在指定存放程序工作时的一些临时文件,应该是指定给tomcat服务程序用的。
打开WEB-INF目录:
web.xml文件:配置Web应用程序。
这个文件很关键,他定义了Web网址访问如何和应用程序对应的关系。这个要注意如果eclipse没有帮你生成这个文件,你就自己复制一个修改成自己的。他的结构例子在下面:
classes目录:存放servlet或其他源码
lib目录:存放Web应用的程序应用到的库*.jar文件
src目录:存放Web应用程序源代码
Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>example.myHello.UploadServlet</servlet-class> //要注意类的命名空间要加上去,不然会出错
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>UploadServlet</url-pattern>
</servlet-mapping>
</web-app>
4,Tomcat应用程序目录结构:
bin:放着tocmat的配置程序。
lib:放着tomcat应用的lib库文件。
logs:放着tomcat的log文件。
temp:临时文件目录。
work:tomcat工作目录。
conf目录下:
server.xml:
定义tomcat服务器的访问端口,用户权限,服务器更目录(默认为webapps),以及Web应用虚拟目录(或者说URI)。
web.xml:
定义Session超时时间,默认index.html,index.htm,index.jsp顺序。servlet的定义,定义相对网页地址与Web应用资源的对应关系。
context.xml。
定义tomcat应用程序每次访问一个Web应用时去哪获得web.xml
webapps:conf中server.xml定义的默认主页位置。
5,tomcat访问分析。
在网页上输入:http://localhost:8080/myHello/
tomcat首先分析server.xml下有不有 /myHello的定义:
<Context path="/mytestapp" docBase="D:\study\tomcat\testapps" reloadable="true" debug="0"> </Context>
如果没有根据: <Engine name="Catalina" defaultHost="localhost">
去conf\Catalina\localhost下看有不有myHello.xml,如果有就根据它的内容:<Context path="/myHello" reloadable="true" docBase="D:\study\jsp\tomcatworkplace\myHello" workDir="D:\study\jsp\tomcatworkplace\myHello\work" />
进行访问。
6,疑问。
webapps下面ROOT目录是tomcat默认的主页位置?还是在哪你定义的?至少在Web应用中搞个ROOT他就不认。