经常看到jsp的初学者问tomcat下如何配置jsp、servlet的问题,于是总结了一下如何tomcat下配置jsp、servlet,希望对那些初学者有所帮助。
第一步:下载j2sdk和tomcat:到sun官方站点
最新的jdk为1.5,tomcat为5.5,建议jdk1.4以上,tomcat4.0以上
第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置按照路径进行安装即可。
1.安装j2sdk以后,需要配置一下环境变量,在我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2):
Java_HOME=c:
\j2sdk1.4.2
classpath=.;
%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar;
path=%JAVA_HOME%\bin
接着可以写一个简单的java程序来测试J2SDK是否已安装成功:
public class Test
{
public static void main
(String args[])
{
System.out.println
("This is a test program.");
}
}
将上面的这段程序保存为文件名为Test.java的文件。
然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令:
javac Test.java
java Test
此时假如看到打印出来This is a test program.的话说明安装成功了,假如没有打印出这句话,你需要仔细检查一下你的配置情况。
2、安装Tomcat后,在我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):
CATALINA_HOME:c:\tomcat
CATALINA_BASE:c:\tomcat
TOMCAT_HOME: C:\Tomcat
然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下:
classpath=.;
%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar;
%CATALINA_HOME%\common\lib\servlet.jar;
接着可以启动tomcat,在IE中访问http://localhost:8080,假如看到tomcat的欢迎页面的话说明安装成功了。
第三步:建立自己的jsp app目录
1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
2.在webapps目录下新建一个目录,起名叫myapp;
3.myapp下新建一个目录WEB-INF,注重,目录名称是区分大小写的;
4.WEB-INF下新建一个文件web.XML,内容如下:
<?xml version="1.0"
encoding="ISO-8859-1"?
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"
<web-app
<display-nameMy Web Application
</display-name
<description
A application for test.
</description
</web-app
5、在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
<Html<body<center
Now time is:
<%=new java.util.Date()%
</center</body</html
6、重启Tomcat
7、打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
第四步:建立自己的Servlet:
写入你的第一个Servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld
extends HttpServlet
{
public void doGet
(HttpServletRequest request,
HttpServletResponse response)th
rows ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html<head<title");
out.println("This is my first Servlet");
out.println("</title</head<body");
out.println("<h1Hello,World!</h1");
out.println("</body</html");
}
}
然后照样用javac HelloWorld.java来编译这个文件,假如出现无法import javax.servl
et.*
那么就是应该把C:\Tomcat\common\lib里面的servlet.jar文件拷贝到C:\JDK\jre\lib\e
xt中,再次编译,就没有问题了。
然后在Tomcat目录里面的C:\Tomcat\webapps\ROOT里面按如下的文件结构:
ROOT\index.html
ROOT\welcom.jsp
ROOT\WEB-INF\lib\MyServlet.jar
(假如你的servlet的.class打成了.jar文件,
则放在lib下面)
ROOT\WEB-INF\classes\HelloWorld.class
(把上面生成的HelloWorld.class文件放在这个里面)
然后在浏览器中输入http://localhost:8080/servlet/HelloWorld,于是Server众望所归的报错了:Error 404--Not Found
怎么回事呢?
Servlet必须使用C:\Tomcat\webapps\ROOT\WEB-INF这个目录下面的web.xml文件进行注册,
用EP打开这个web.xml文件,
把下面这段程序
<servlet
<servlet-nameHelloWorld</servlet-name
<servlet-classHelloWorld</servlet-class
</servlet
<servlet-mapping
<servlet-nameHelloWorld</servlet-name
<url-pattern/servlet/HelloWorld</url-pattern
</servlet-mapping
替换成
<servlet
<servlet-nameHelloWorld</servlet-name
<servlet-classHelloWorld</servlet-class
</servlet
<servlet-mapping
<servlet-nameHelloWorld</servlet-name
<url-pattern/servlet/HelloWorld</url-pattern
</servlet-mapping
为什么呢?
因为 这样的结构
<servlet
<servlet-nameHelloWorld</servlet-name
<servlet-classHelloWorld</servlet-class
</servlet
表示指定包含的servlet类.
而以下的结构
<servlet-mapping
<servlet-nameHelloWorld</servlet-name
<url-pattern/servlet/HelloWorld</url-pattern
</servlet-mapping
表示指定HelloServlet应当映射到哪一种URL模式。
在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld,那么偌大一个Hello,World!等着你呢。