Servlet/JSP配置详解(非常基础)
jdbc 发表于 2004-03-02 09:22:00作者:jdbc 评论数:35 点击数:45,478 投票总得分:51 投票总人次:14
关键字:jsp servlet tomcat
首先是下载工具:
我建议初学者用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!等着你呢。
本页页面地址:
用户评论列表
好像是 csdn.net的faq吧昨天刚看过
不过我按他的不行,不知道转载的自己试过没有
虽然是简单的问题,不过写得比较完整
很好!谢谢!
非常好,不过Servlet的那段xml要加载到<web-app></web-app>之间,我就弄了好久都出错,后来才知道要这样,不过还是很感谢了,要不然都不知道怎么配,程序放哪里
很好谢谢!
为什么我最后的HelloWorld总是404,前面的都一样,光localhost:8080能出index.jsp,但是HelloWorld总是找不到。
为什么我最后的HelloWorld总是404,前面的都一样,光localhost:8080能出index.jsp,但是HelloWorld总是找不到。
为什么我最后的HelloWorld总是404,前面的都一样,光localhost:8080能出index.jsp,但是HelloWorld总是找不到。
写的真好啊。
写得较通俗易懂,适合初学者
我怎么在Tomcat\common\lib里面找不到servlet.jar呀,没有!
怎么办呢??
放屁,到后面什么都没有说,新手根本连JSP都不会,哪有什么INDEX。HTML,WELCOME。JSP,JAR,都 是放屁
谢谢你提供的XML设计结构!!
我怎么不能启动Tomcat 阿?谢谢请问一下是什么问题阿 ?
其实作者写的很好的
不能出来的人请先看看基本概念再看这个操作文章即可入门。
在EDITPLUS中也能编译,太好了。
不错不错,,XML设计结构正是我所需要的,终于写出第一个servlet了
Tomcat5里面找不到servlet.jar,用servlet-api.jar代替
偶和您的做法一么一样,为何还没有变化啊,偶tomcat启动没问题,程序编译也没问题。对了,我的ROOT下没有welcom.jsp,
有index.jsp而没有index.html
我的做法是一模一样的,但是还是出现了错误,HTTP Status 404 - /servlet/HelloWorld,同时想问一下:ROOT\WEB-INF\lib\MyServlet.jar(如果你的servlet的.class打成了.jar文件,则放在lib下面)这个文件我怎么样才能产生呀,我增加了文件servlet-api.jar文件到lib下,但还是出现相应的错误,是怎么回事呢?
我安装了Tomcat 5.0.30;之后启动在IE里输入:
http://localhost:8080
但是显示出都是空白了.状态条下显示完成;
就是没有显示欢迎的界面.怎么办?各位指教一下.不胜感谢!
很权威阿
有些东西大家要变通想想得
servlet.jar在tomcat5.0.29下没有 但是copy servlet-api.jar一样啊
不错不错!写的真不错,很详细.
谢了
写的不错的.
great@
这篇文章介绍得很好!非常感谢!我终于弄出了自己的第一个servlet!
写的很好
但是我使用的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
我改写了web.xml
发现http://localhost:8080也不好用啦
The requested resource (/) is not available.
不错!!
现在还只看到一半,但是真的很收益.谢谢.继续加油
谢谢~~
我现在是在学着用creator,虽然配置对我是有点难,不过觉得它还是挺好用的
弟兄们,一步一步照着这个就能搞出一个servlet。
简直就是误导人,WEB.XML设置成<url-pattern>/servlet/helloworld</url-pattern>
然后看http://localhost:8080/servlet/HelloWorld
回出来就怪了
完全抄袭别人的东西。
直接拷到tomcat和root目录平级就可以运行servlet了,到真正用的时候就可以配置
谢谢你提供的XML设计结构!!
如果没写包名,servlet读取的文件默认都在启动tomcat的位置,即 tomcat/bin 下,这个要注意。
javax.servlet.ServletException: Wrapper cannot find servlet class firstServlet or a class it depends on
1031,32,33 404错误是你直接copy网页上代码的缘故 ,网页上的“<”不是英文的"<"
但是最后还是 出现500错误
呵呵,不错的文章~
我那样做了还是没用,不知道是不是软件冲突,还是其他问题,唉
很好,值得学习。从基础做起,那样后面的路才好走
我按你说的配了,可我的Tomcat启动时还是报错,不过在Eclipse却可以用。
Eclipse同样好使的
很高兴大家能喜欢
很好,很简单!谢谢!
谢谢!!!!!!!!!!!!!!!!!!!!!!!!
我也是按这个配好的
但现在有点问题:
难道每写一个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>
这个东东吗?望早日有人赐教,等待中...
to gaobo,对,每写一个servlet 都要在web.xml中加入这个东东,
不过现在的IDE都自动帮你生成,不需要你手工去写的,
你要是想进行下个性话修改的话,可以手工在它上面改就行了。
这是一个好东西呀,不过更好的还是Editplus,但我下的这个好像少了很多东西。启动时总是提示找不到什么文件的。。。
有个问题,修改webapps/root/index.jsp文件,如将某个单词改为中文,用http://localhost//登陆显示修改后的网页,而用http://localhost:8080//登陆则显示修改前的页面,这是为什么啊?修改前的页面存在哪里啊?
可以按部就班的做出来,解释的很清楚!支持一下
写的很好,步骤也很清晰。能使初学者快速学会servlet。支持,希望能给大家带来更大的帮助。
写的真的很好
servlet.jar应该改为servlet-api.jar。
servlet.jar应该改为servlet-api.jar。
很基礎的,初學必看。
这个我也没有运行出来,希望高手能再详细一点,我的主要是在编译完JAVA文件后,没有出现CLASS文件啊!!
我在网址输入http://loacalhost:8080/
出现HTTP 404 - 未找到文件
您要查看的网页可能已被删除、名称已被更改,或者暂时不可用。
望高手指教
我装的是tomcat 5.0.30
为什么他没有出现tomcat的欢迎界面!
按照介绍的 一定会出错的....但是不知道怎么修改啊...有高手没有 ??
按照介绍的 一定会出错的....但是不知道怎么修改啊...有高手没有 ??
大量经典中文文档下载,绝对是不可多得的好书!!
下载地址:http://chinesedocument.com/default.asp?Src_Child=1
http://localhost:8080/servlet/HelloWorld,中的"/servlet/HelloWorld"前面还应该加上项目名.
在eclipse下做servlet需要配置什么吗?为什么我在IE里测试可以但是在eclipse里编译总是404错误,在eclipse项目下有个/WEB-INF/WEB.XML这个web.xml也需要配置吗?
发表我的评论 (评论可增加个人积分...)
| 用户*: | E-mail: | ||
| 评论内容*: 支持BBCode |
|||
| 算术题*: | + = | ||

ICP:?B2-20040367