最近在学习servlet,看书看的似乎还比较理想就想上机试下,这一试就发现,问题来了 ,每次编译都说找不到 servlet 和 httpServlet 包。我在网上找啊找啊,找到的总是要我们把 tomcat lib下的servlet.jar 加到classpath就OK了。但是一次一次的提示同样的错误就差点将我从servlet打回来了。后来我终于找到了,真的很感谢他。
我再一次感谢他。
以下是他blog中的内容
将HelloServlet.java编译为HelloServlet.class文件。
HelloServlet.java:2: 软件包 javax.servlet 不存在
import javax.servlet.*;
^
HelloServlet.java:3: 软件包 javax.servlet.http 不存在
import javax.servlet.http.*;
^
HelloServlet.java:13: 找不到符号
符号: 类 HttpServlet
public class HelloServlet extends HttpServlet {
^
HelloServlet.java:14: 找不到符号
符号: 类 HttpServletRequest
位置: 类 HelloServlet
public void doGet(HttpServletRequest request,
^
HelloServlet.java:15: 找不到符号
符号: 类 HttpServletResponse
位置: 类 HelloServlet
HttpServletResponse response)
^
HelloServlet.java:16: 找不到符号
符号: 类 ServletException
位置: 类 HelloServlet
throws ServletException, IOException {
^
6 错误
出现错误!由于servlet和JSP不是Java平台Java SE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置。
解决“软件包 javax.servlet 不存在”错误的方法:
1. 搜索servlet-api.jar
所在文件夹:C:Tomcat 5.5commonlib
2. 将环境变量CLASSPATH的值设置为:
.;C:Tomcat 5.5commonlibservlet-api.jar
上面的是就是我所发现的最最完善的教程所说的解决方法,然后按照预测:
3. 重新编译:javac HelloServlet.java,编译成功。
结果。。。。不行!
现在我们发现了什么原因?原来出了设置classpath以及servlet-api.jar的区别外,还有一点!!!
把COMMON/LIB下的SERVLET-API.JAR 拷贝到JDK/jrelibext下