Servlet/JSP配置详解(非常基础)

jdbc 发表于 2004-03-02 09:22:00
作者:jdbc     评论数:35 点击数:45,478     投票总得分:51 投票总人次:14
关键字:jsp servlet tomcat

摘要:

初学者问的诸如:《怎样配置环境变量》《怎样运行Servlet》啊?这样的问题太多了,现在我写一个初学者入门必读,以便对初学者有指导作用!

  首先是下载工具:

  我建议初学者用Editplus+JDK,我觉得如果用例如JB,Eclipse,JCreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步。

  可以通过如下地址下载:

Editplus(最新版本是v2.11):http://count.skycn.com/softdown.php?id=3641&url=http://sc-http.skycn.net/down/epp211a_cn.exe JDK(最新版本是Java2sdk1_4_2):http://count.skycn.com/softdown.php?id=3116&url=http://sc-http.skycn.net/down/j2sdk-1_4_2-windows-i586.exe(这是For Windows)

  然后就是安装JDK,我是把它装到从c:\JDK目录下面。

  然后设置CLASSPATH的问题了:

  正如操作系统利用PATH来搜索可执行程序一样,Java运行环境也会遍历CLASSPATH来查找类,即便是HelloWorld这样简单的程序,JVM也会遍历CLASSPATH定义的每一个路径,直到找到相应的文件为止。

  相信大家用的系统不是2k就是XP,然后就应当如下设置Path:

  我的电脑->属性->高级->环境变量

  然后在环境变量的Path后面追加: C:\JDK\bin;.;C:\JDK\lib

  也可以这样配置:C:\JDK\bin;.;C:\JDK\lib\dt.jar;C:\JDK\lib\tools.jar

  ★记住:环境变量中的 . 切记不能少,它表示当前路径,如果少掉出现的错误等会就说!

  dt.jar是关于运行环境的类库,tools.jar是关于一些工具的类库

  如果没有配置:C:\JDK\bin,则会出现 “ javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。”这样的错误。

  下面我们就写一个示例程序:

  打开Editplus,新建一个Java文件,请照着如下输入,要一字不漏,并且分清大小写:

public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}

  然后把这个文件保存(ctrl + s)到HelloWorld.java,Java是分大小写的,所以大小写一定要分清,是HelloWorld.java不是helloworld.java或者其他。

  运行:开始->运行->cmd

  在控制台中把目录切换到当前目录:

javac HelloWorld.java
java HelloWorld

  你就会在控制台上看见输出的Hello,World!

  javac是编译命令,它把HelloWorld.java编译成HelloWorld.class

  java就是解释命令,JVM把HelloWorld.class解释执行.

  在这个时候:

  1、如果出现Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
那就是你在环境变量中没有加上那个.(dot)

  2、如果出现Exception in thread "main" java.lang.NoSuchMethodError: main
或者HelloWorld.java:1: Public class helloworld must be defined in a file called

"HelloWorld.java".

  那就是你没有分清大小写的写入这个HelloWorld,或者保存得时候没有保存为HelloWorld.java。这个名字一定要跟public class的名字一样

  对于环境变量的问题就说到这里,下面我先所说怎么在Editplus里面编译和运行,在Tools->参数设置->配置用户工具

  1.添加工具(添加应用程序)

  菜单文字:Compile Java Program

  程序:C:\JDK\bin\javac.exe

  参数:文件名称

  初始目录:文件目录

  2.添加工具(添加应用程序)

  菜单文字:Run Java Program

  程序:C:\JDK\bin\java.exe

  参数:文件名称(不含扩展名)

  初始目录:文件目录

  工具组名称可以随便添,比如Debug Java Program。

  然后在Tools的下拉菜单中,你就会看见Compile Java Program以及Run Java Program这两个选项,以后你就可以利用ctrl + 1编译和ctrl +2运行程序了

下面我们讨论Servlet的运行环境:

  要运行Servlet,则需要JSP/Servlet container,我建议初学者用Tomcat。

Tomcat(最新版本5.0):http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip

  然后把这个压缩包解压到:

  C:\Tomcat

  然后再配置环境变量;添加三个系统变量:

JAVA_HOME: C:\JDK
TOMCAT_HOME: C:\Tomcat
CLASSPATH: %JAVA_HOME%\lib;%TOMCAT_HOME%\lib

  Tomcat的环境变量就配置完毕了,下面检验Tomcat是否能够运行:

  在控制台中转到C:\Tomcat\bin这个目录,运行startup,然后回出现一个窗口,连跳一大串东西,最后表示Server已经运行。

  在浏览器中输入http://localhost:8080,出现欢迎界面,则表示Tomcat没问题了。然后和上面一样,写入你的第一个Servlet。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws 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("<h1>Hello,World!</h1>");
out.println("</body></html>");

}
}

  然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servlet.*

  那么就是应该把C:\Tomcat\common\lib里面的servlet.jar文件拷贝到C:\JDK\jre\lib\ext中,再次编译,就没有问题了!

  然后在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-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>  

  这样的结构

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>

  表示指定包含的servlet类。而以下的结构:

<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>

   表示指定HelloServlet应当映射到哪一种URL模式。

  在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld,那么偌大一个Hello,World!等着你呢。


本页页面地址:

投票评分(记入本贴作者的专家分)

     非常好 还行 一般 扔鸡蛋          投票总得分: / 投票总人次:

用户评论列表

#1 评论作者: flypig2003 发表时间: 2004-03-04 10:02 上午 E-mail: d1f2g3h4@163.com

好像是 csdn.net的faq吧昨天刚看过
不过我按他的不行,不知道转载的自己试过没有

#2 评论作者: nuoheng 发表时间: 2004-03-11 02:29 下午

虽然是简单的问题,不过写得比较完整

#3 评论作者: zvqq 发表时间: 2004-03-27 05:41 下午 E-mail: zvqq@msn.com

很好!谢谢!

#4 评论作者: cugle 发表时间: 2004-04-07 04:09 下午

非常好,不过Servlet的那段xml要加载到<web-app></web-app>之间,我就弄了好久都出错,后来才知道要这样,不过还是很感谢了,要不然都不知道怎么配,程序放哪里

#5 评论作者: www 发表时间: 2004-04-13 10:16 上午

很好谢谢!

#6 评论作者: qiqi 发表时间: 2004-04-16 06:40 上午

为什么我最后的HelloWorld总是404,前面的都一样,光localhost:8080能出index.jsp,但是HelloWorld总是找不到。

#7 评论作者: qiqi 发表时间: 2004-04-16 06:41 上午

为什么我最后的HelloWorld总是404,前面的都一样,光localhost:8080能出index.jsp,但是HelloWorld总是找不到。

#8 评论作者: 奇奇 发表时间: 2004-04-16 06:41 上午

为什么我最后的HelloWorld总是404,前面的都一样,光localhost:8080能出index.jsp,但是HelloWorld总是找不到。

#9 评论作者: bcsky 发表时间: 2004-04-21 08:41 上午

写的真好啊。

#10 评论作者: oasis 发表时间: 2004-04-29 03:11 下午

写得较通俗易懂,适合初学者

#11 评论作者: 生如夏花 发表时间: 2004-05-03 09:57 下午 E-mail: pengfeng611@sohu.com

我怎么在Tomcat\common\lib里面找不到servlet.jar呀,没有!
怎么办呢??

#12 评论作者: xxxx 发表时间: 2004-06-01 04:09 下午 E-mail: xx@sina.com

放屁,到后面什么都没有说,新手根本连JSP都不会,哪有什么INDEX。HTML,WELCOME。JSP,JAR,都 是放屁

#13 评论作者: mickmail 发表时间: 2004-06-16 10:39 上午

谢谢你提供的XML设计结构!!

#14 评论作者: robite 发表时间: 2004-06-24 03:35 下午 E-mail: robite@sina.com

我怎么不能启动Tomcat 阿?谢谢请问一下是什么问题阿 ?

#15 评论作者: 说不得 发表时间: 2004-07-06 08:18 上午

其实作者写的很好的
不能出来的人请先看看基本概念再看这个操作文章即可入门。

#16 评论作者: resolute 发表时间: 2004-07-28 07:47 下午

在EDITPLUS中也能编译,太好了。

#17 评论作者: windfly 发表时间: 2004-08-23 11:17 上午

不错不错,,XML设计结构正是我所需要的,终于写出第一个servlet了
Tomcat5里面找不到servlet.jar,用servlet-api.jar代替

#18 评论作者: laoxing 发表时间: 2004-10-11 09:47 下午 E-mail: xinlikang@163.com

偶和您的做法一么一样,为何还没有变化啊,偶tomcat启动没问题,程序编译也没问题。对了,我的ROOT下没有welcom.jsp,
有index.jsp而没有index.html

#19 评论作者: lliuxxingw 发表时间: 2004-10-20 12:12 上午 E-mail: lliuxxingw@163.net

我的做法是一模一样的,但是还是出现了错误,HTTP Status 404 - /servlet/HelloWorld,同时想问一下:ROOT\WEB-INF\lib\MyServlet.jar(如果你的servlet的.class打成了.jar文件,则放在lib下面)这个文件我怎么样才能产生呀,我增加了文件servlet-api.jar文件到lib下,但还是出现相应的错误,是怎么回事呢?

#20 评论作者: winder 发表时间: 2004-12-08 09:41 下午 E-mail: dttvw@126.com

我安装了Tomcat 5.0.30;之后启动在IE里输入:
http://localhost:8080
但是显示出都是空白了.状态条下显示完成;
就是没有显示欢迎的界面.怎么办?各位指教一下.不胜感谢!

#21 评论作者: blueoxygen 发表时间: 2005-03-29 02:02 下午

很权威阿
有些东西大家要变通想想得
servlet.jar在tomcat5.0.29下没有 但是copy servlet-api.jar一样啊

#22 评论作者: zb 发表时间: 2005-03-29 10:09 下午

不错不错!写的真不错,很详细.

#23 评论作者: 呵呵 发表时间: 2005-04-04 02:47 下午 E-mail: xiabinbin84@yahoo.co

谢了

写的不错的.

#24 评论作者: jasonlee 发表时间: 2005-04-20 12:53 下午

great@

#25 评论作者: 李军波 发表时间: 2005-05-02 07:06 下午

这篇文章介绍得很好!非常感谢!我终于弄出了自己的第一个servlet!

#26 评论作者: kuangxue 发表时间: 2005-05-27 01:28 下午 E-mail: my163my163@tom.com

写的很好
但是我使用的tomcat版本是jakarta-tomcat-4.1.27.exe
按照上面步骤来的
到http://localhost:8080好用后
发现在Tomcat目录里面的C:\Tomcat\webapps\ROOT里面
没有上面所说的文件结构
如下:
--index.jsp
--jakarta-banner.gif
--tomcat.gif
--tomcat-power.gif
--WEB-INF
   --web.xml


#27 评论作者: kuangxue 发表时间: 2005-05-27 01:39 下午 E-mail: my163my163@tom.com

我改写了web.xml
发现http://localhost:8080也不好用啦
The requested resource (/) is not available.

#28 评论作者: ppkjjk 发表时间: 2005-06-30 12:56 下午

不错!!

#29 评论作者: cecilialn 发表时间: 2005-07-06 05:03 上午

现在还只看到一半,但是真的很收益.谢谢.继续加油

#30 评论作者: boyzone_2008 发表时间: 2005-08-16 09:12 下午

谢谢~~
我现在是在学着用creator,虽然配置对我是有点难,不过觉得它还是挺好用的

#31 评论作者: civili 发表时间: 2005-09-02 03:44 下午

弟兄们,一步一步照着这个就能搞出一个servlet。

#32 评论作者: 发表时间: 2005-10-11 06:30 下午

简直就是误导人,WEB.XML设置成<url-pattern>/servlet/helloworld</url-pattern>
然后看http://localhost:8080/servlet/HelloWorld
回出来就怪了
完全抄袭别人的东西。

#33 评论作者: andylt 发表时间: 2005-11-11 03:25 下午

直接拷到tomcat和root目录平级就可以运行servlet了,到真正用的时候就可以配置

#34 评论作者: dongping 发表时间: 2005-11-13 10:30 上午

谢谢你提供的XML设计结构!!

#35 评论作者: widesafe 发表时间: 2005-11-18 07:19 下午 E-mail: widesafe@163.com

如果没写包名,servlet读取的文件默认都在启动tomcat的位置,即 tomcat/bin 下,这个要注意。

#36 评论作者: zgdodo 发表时间: 2005-11-21 10:51 下午

javax.servlet.ServletException: Wrapper cannot find servlet class firstServlet or a class it depends on

1031,32,33 404错误是你直接copy网页上代码的缘故 ,网页上的“<”不是英文的"<"

但是最后还是 出现500错误

#37 评论作者: grathene 发表时间: 2005-11-24 02:06 上午 E-mail: grathene@gmail.com

呵呵,不错的文章~

#38 评论作者: 发表时间: 2005-12-02 03:55 下午

我那样做了还是没用,不知道是不是软件冲突,还是其他问题,唉

#39 评论作者: syxwxx 发表时间: 2005-12-22 02:31 下午

很好,值得学习。从基础做起,那样后面的路才好走

#40 评论作者: chw8219 发表时间: 2005-12-23 09:53 上午

我按你说的配了,可我的Tomcat启动时还是报错,不过在Eclipse却可以用。

#41 评论作者: jdbc 发表时间: 2005-12-27 10:41 上午

Eclipse同样好使的
很高兴大家能喜欢

#42 评论作者: rss2046 发表时间: 2006-01-01 01:58 下午 E-mail: yunzhongge@126.com

很好,很简单!谢谢!
谢谢!!!!!!!!!!!!!!!!!!!!!!!!

#43 评论作者: gaobo 发表时间: 2006-02-12 09:07 下午 E-mail: gaobo1025@163.com

我也是按这个配好的
但现在有点问题:
   难道每写一个servlet 都要在web.xml中加入
    <servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>  
这个东东吗?望早日有人赐教,等待中...

#44 评论作者: jdbc 发表时间: 2006-02-25 08:53 上午

to gaobo,对,每写一个servlet 都要在web.xml中加入这个东东,
不过现在的IDE都自动帮你生成,不需要你手工去写的,
你要是想进行下个性话修改的话,可以手工在它上面改就行了。

#45 评论作者: luosh 发表时间: 2006-03-04 12:12 上午

这是一个好东西呀,不过更好的还是Editplus,但我下的这个好像少了很多东西。启动时总是提示找不到什么文件的。。。

#46 评论作者: djid 发表时间: 2006-03-07 06:53 下午 E-mail: dujun@rcs-9000.com

有个问题,修改webapps/root/index.jsp文件,如将某个单词改为中文,用http://localhost//登陆显示修改后的网页,而用http://localhost:8080//登陆则显示修改前的页面,这是为什么啊?修改前的页面存在哪里啊?

#47 评论作者: bzhong 发表时间: 2006-03-17 10:38 下午

可以按部就班的做出来,解释的很清楚!支持一下

#48 评论作者: xumi 发表时间: 2006-04-18 07:04 下午

写的很好,步骤也很清晰。能使初学者快速学会servlet。支持,希望能给大家带来更大的帮助。

#49 评论作者: honggou 发表时间: 2006-07-26 11:43 上午

      
写的真的很好

#50 评论作者: mymatrix8848 发表时间: 2006-07-28 11:06 上午

servlet.jar应该改为servlet-api.jar。

#51 评论作者: mymatrix8848 发表时间: 2006-07-28 11:06 上午

servlet.jar应该改为servlet-api.jar。

#52 评论作者: makeit 发表时间: 2006-09-07 12:21 下午

很基礎的,初學必看。

#53 评论作者: flyiamgy 发表时间: 2006-10-13 02:12 下午

这个我也没有运行出来,希望高手能再详细一点,我的主要是在编译完JAVA文件后,没有出现CLASS文件啊!!

#54 评论作者: ashee 发表时间: 2006-11-07 05:58 下午

我在网址输入http://loacalhost:8080/
出现HTTP 404 - 未找到文件
您要查看的网页可能已被删除、名称已被更改,或者暂时不可用。
望高手指教
我装的是tomcat 5.0.30

#55 评论作者: ashee 发表时间: 2006-11-07 06:00 下午

为什么他没有出现tomcat的欢迎界面!

#56 评论作者: ourac 发表时间: 2006-12-08 03:49 下午

按照介绍的 一定会出错的....但是不知道怎么修改啊...有高手没有 ??

#57 评论作者: ourac 发表时间: 2006-12-08 03:49 下午

按照介绍的 一定会出错的....但是不知道怎么修改啊...有高手没有 ??

#58 评论作者: hilhoo 发表时间: 2006-12-14 10:28 上午

大量经典中文文档下载,绝对是不可多得的好书!!
下载地址:http://chinesedocument.com/default.asp?Src_Child=1

#59 评论作者: chunlin3402 发表时间: 2007-05-31 10:25 下午

http://localhost:8080/servlet/HelloWorld,中的"/servlet/HelloWorld"前面还应该加上项目名.

#60 评论作者: 发表时间: 2007-07-03 09:26 上午

#61 评论作者: ppsophia 发表时间: 2007-08-07 11:35 上午

在eclipse下做servlet需要配置什么吗?为什么我在IE里测试可以但是在eclipse里编译总是404错误,在eclipse项目下有个/WEB-INF/WEB.XML这个web.xml也需要配置吗?


发表我的评论 (评论可增加个人积分...)

用户*: E-mail:
评论内容*:

支持BBCode
算术题*: + =