本人也是刚刚才开始学jsp,想把配置tomcat的一些经验来说一下。
一. 环境变量配置
首先安装jdk和tomcat,然后配置环境变量。环境变量在我的电脑右键->属性->高级->环境变量,set是我按照dos的批处理命令写的,暂时可以不用管,只要知道set后面的意思就可以了,之后会给懒人一种办法。
/*
set JAVA_HOME=E:/Tools/Environment/Java/j2sdk1.4.2_05
set CATALINA_HOME=E:/Tools/Environment/Java/Tomcat 5.0
set CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet-api.jar;%CATALINA_HOME%/common/lib/mssqlserver.jar;%CATALINA_HOME%/common/lib/msbase.jar;%CATALINA_HOME%/common/lib/msutil.jar;%CATALINA_HOME%/webapps/jspbbs/WEB-INF/classes
set PATH=%PATH%;%JAVA_HOME%/bin
*/
这是我所设的环境变量大致如上,我会一一解释。
先说一下%百分号得意思
%JAVA_HOME%
百分号里包含的其实就是这个变量所对应的值
比如说:
set JAVA_HOME=C:
set JAVA_HOME=%JAVA_HOME%;D:
等同于
set JAVA_HOME=C:
set JAVA_HOME=C:;D:
这里的%JAVA_HOME%其实就等于C:
1. set JAVA_HOME=E:/Tools/Environment/Java/j2sdk1.4.2_05
设置jdk的安装目录,环境变量名设为JAVA_HOME,如果你的jdc是安装在C:/j2sdk1.4.2_05
那么JAVA_HOME=C:/j2sdk1.4.2_05
2. set CATALINA_HOME=E:/Tools/Environment/Java/Tomcat 5.0
设置tomcat的安装目录,和第一条相同
3. CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet-api.jar;%CATALINA_HOME%/common/lib/mssqlserver.jar;%CATALINA_HOME%/common/lib/mssqlserver.jar;%CATALINA_HOME%/common/lib/msutil.jar;%CATALINA_HOME%/webapps/jspbbs/WEB-INF/classes
dt.jar和tools.jar是所要包含的两个包文件,*当然不要忘记了一开始要加入.;表示当前目录*
我用的tomcat是5.0的,所以servlet文件是servlet-api.jar而不是servlet.jar,tomcat5.0版本以下的朋友请包含servlet.jar而不是servlet-api.jar
mssqlserver.jar,msbase.jar,msutil.jar这三个文件是sql server的驱动文件,如果是其他数据库,可能要加入相应的数据库驱动文件。
数据库驱动文件要上网去自己下
4. %CATALINA_HOME%/webapps/jspbbs/WEB-INF/classes
是你存放servlet和bean的class目录,如果servlet要用包,一定要加上这段。
5. set PATH=%PATH%;%JAVA_HOME%/bin
这个是设置你javac和java这两个命令所在的目录。
如果不设置的话,我如果要用javac运行一个.java文件就要这样运行了
E:/Tools/Environment/Java/j2sdk1.4.2_05/bin/javac sample.java
呵呵,每次都要这样,挺麻烦的。
说一下懒人的办法,可以把我一个开始/*...*/里的变量稍作修改
保存成autoexec.bat放在c盘根目录(如果你的启动盘符是其他,那就放在相应盘符里),这样就可以省去配置环境变量的过程
到这里环境变量基本配置完成了
二. xml文件配置
接下去配置server.xml
在%CATALINA_HOME%/conf里面,配置前先备份一下
1. 端口配置(可选)
查找下面一段话
<Connector port="8080" maxThreads="150"
如果你是8080端口的话,肯定找得到,如果机器上面不运行其实web服务的话,建议把port改成80端口,这样也比较方便,不用每次打网页的时候后面还跟个端口号。
2. 自动重载,如果class改变的话,tomcat会自动重载,而不用重新启动tomcat
查找下面这段话
<!-- Define properties for each web application.
然后在这段话的下面加入下面这段话
<DefaultContext reloadable="true"/>
3. 启动root上下文
查找下面这段话
<!-- Tomcat Root Context -->
把它下面这段话的"<!--"和"-->"去掉
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
*注意tomcat5.0里好像是这个样子的<Context path="" docBase="ROOT" debug="0">
后面少了"/"自己加上去。
接下去配置web.xml
注意这个web.xml是%CATALINA_HOME%/conf里的web.xml,而不是你工程目录下的WEB-INF下的web.xml,先备份web.xml
1. 开启servlet调用器,不用每次自己在WEB-INF/web.xml配置servlet的映射,直接可以调用servlet
查找下面一段话
<servlet-name>invoker</servlet-name>
把注释去掉,不会去注释参看server.xml的第三点启动root上下文,一共有2处。
├─WEB-INF
│ ├─web.xml
│ └─classes
│ └─<存放class文件>
└─<存放jsp文件>
jsp工程目录结构基本如上
编写一个servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class MyServlet extends HttpServlet {
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
out.println("Hello World!");
}
}
编译一下放在WEB-INF/classes里
我的工程目录叫jspbbs那么运行servlet的方法就是
http://localhost/jspbbs/servlet/MyServlet
因为是用了servlet自动调用器,所以所有的servlet运行都要在前面加上/servlet
如果有包的话就是
http://localhost/jspbbs/servlet/包名.MyServlet