假设在你的JSP站点中,要用到serlet,数据库,javabeans,JSTL动作等,怎么配置Tomcat,eclipse及Jdk,使你的JSP页面正确运行及显示呢?
首先,在你的服务器上安装数据库服务,Jdk,Tomcat。放下eclipse程序包(绿色安装)。从网上下载要用到的jar包,如JSTL库,数据库驱动包等等,放到Tomcat_home/common/lib/下。在环境变量里,设置JAVA运行需要的环境变量,在eclipse中注册jre和Tomcat服务(window/preference下的JAVA标签下的Installed JREs和server标签下的Installed Runtimes)。这样,大环境就配置好了。
然后,在eclipse中指定你的工作目录workspace。新建一个server,就是你要运行应用程序的Tomcat服务器。这样,在eclipse下启动Tomcat时,站点根目录就是workspace/了(但用Tomcat monitor启动时根目录还是catalina_home/web-apps/)。设置workspace使你不需要将你的站点放到tomcat的安装目录下。
接着,你就可以编写你的JSP了。新建一个project,然后将页面写在webcontent下,将serlet和javabean写在src/lib下。设置project的属性中的Java Build Path,在libraries标签下为project add library.
将用到的jar包放到WEB-INF下的lib文件夹下(个人感觉驱动性质的包,如数据库驱动等应放在Tomcat下,而一般的包放在应用程序的lib就行了)。
在web.xml中注册你用到的servlet,像这样注册每一个你的servlet:
不过使用myEclipse构建的工程已经
然后再在eclipse里新建一个server,将你的project 放进去。则在Servers/Tomcat v5.5 Server @ localhost-config/server.xml中你可以看到你的project的上下文信息。这是服务器处理访问时要用到的。比如
<Context docBase="RoboCup" path="/RoboCup" reloadable="true" source="org.eclipse.jst.j2ee.server:RoboCup" />
该标签指定了当访问地址为http://localhost:8080/RoboCup/ 服务器将把访问者带到workspace/RoboCup/index.jsp页面,因为docBase为RoboCup的Context指向的path为/RoboCup。
internet服务默认端口是80,可是tomcat的默认端口是8080,所以可以改一下tomcat的的连接器端口:
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80
80
" redirectPort="8443" />
这时,在eclipse中发布你的网站,输入地址http://localhost/RoboCup 或http://172.19.10.98/RoboCup 就可以访问站点了。
让我们看一下网页是怎么运行的。当你在eclipse中发布你的站点时,tomcat将按workspace下server文件下的server.xml中的配置信息启动,这样路径就不是tomcat安装目录,而是你的workspace了。
在用到servlet,javabeans,数据库访问,jstl动作等的地方,服务器要查找相应的配置信息,找到那些组件的定义,然后才能正确解析页面。