这个问题困扰我好几天了,很是郁闷查了资料总是搞不定,第一次接触网络编程,很菜,希望大家不要见笑!因为最多只能送100分,不够再加,问题解决马上结贴。第一个问题,只安装J2SE JDK包是不是就能编译servlet程序?第二个问题,我编译程序一个servlet程序的时候显示如下的错误,但是我编译其他非servlet程序的时候都能都正常运行。错误如下:D:\>javac hello.java
hello.java:2: 软件包 javax.servlet 不存在
import javax.servlet.*;
^
hello.java:3: 软件包 javax.servlet.http 不存在
import javax.servlet.http.*;
^
hello.java:4: 找不到符号
符号: 类 HttpServlet
public class hello extends HttpServlet
                           ^
hello.java:6: 找不到符号
符号: 类 ServletConfig
位置: 类 hello
public void init(ServletConfig config) throws ServletException
                 ^
hello.java:6: 找不到符号
符号: 类 ServletException
位置: 类 hello
public void init(ServletConfig config) throws ServletException
                                              ^
hello.java:14: 找不到符号
符号: 类 HttpServletRequest
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
                    ^
hello.java:14: 找不到符号
符号: 类 HttpServletResponse
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
                                           ^
hello.java:14: 找不到符号
符号: 类 ServletException
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
                                                                            ^
hello.java:8: 找不到符号
符号: 变量 super
位置: 类 hello
super.init(config);
^
hello.java:12: 找不到符号
符号: 变量 super
位置: 类 hello
super.destroy();
^
10 错误D:\>在下先谢谢了!希望高手帮帮忙1

解决方案 »

  1.   

    只安装jdk不可以,还要装个servlet容器,比如tomcat、jboss、weblogic之类都行
      

  2.   

    1。是
    2。需要把servlet包添加到classpath。tomcat下的common文件夹下有,楼主找一下
    tomcat的部署,一般可以直接把工程生成的jsp、class、jar等考到tomcat下的webapps文件夹下
    目录结构如下:
    webapps\projectName\WEB-INF\classes\*.class(生成的class)
                               \lib\*.jar(需要的三方jar)
                               \web.xml,很重要的一个配置文件,没有他就不能通过web访问,servlet也识别不到,不过楼主刚开始练习的话可以在tomcat自带的例子那随便考一个web-inf文件夹,放在projectName下,在projectName下放个jsp或html文件访问一下,一般是可以访问的 ,至于servlet,需要在web.xml中进行配置 ,格式如下:
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>DateServlet</servlet-name>
        <servlet-class>basic.DateServlet</servlet-class>
      </servlet>  <servlet-mapping>
        <servlet-name>DateServlet</servlet-name>
        <url-pattern>/servlet/DateServlet</url-pattern>
      </servlet-mapping>
      

  3.   

    [配置Tomcat]先设置如下环境变量:
    JAVA_HOME = <JDK安装目录>
    TOMCAT_HOME = <Tomcat根目录>
    在Path最后附加:
    Path = ......;%JAVA_HOME%\bin如果使用linux,请用export设置环境变量。然后打开控制台窗口,输入javac,如果能够运行,说明能找到JDK的编译器,输入java -version,如果显示1.4.x_xx则配置正确,否则检查是否安装了低版本的JDK(比如1.3版本),如果有低版本的JDK,把它从Path中移除即可。[启动和关闭Tomcat]打开目录%TOMCAT_HOME%/bin,运行startup.bat(linux下是startup.sh),稍等片刻,直到出现
    信息: Server startup in XXXXX ms
    表示启动成功!要关闭Tomcat,最好不要直接关掉控制台窗口,运行%TOMCAT_HOME%\bin\shutdown.bat(linux下是shutdown.sh)。[第一个JSP程序]运行在Tomcat的Web程序全部放在%TOMCAT_HOME%/webapps下,每个应用单独一个目录,我们开始写第一个"Hello, world"JSP页面。首先,我们在%TOMCAT_HOME%\webapps下新建一个hello目录,作为整个Web应用程序的根目录,然后在hello目录下新建hello.jsp,用任何文本编辑器输入以下内容:
    <% out.println("Hello, world."); %>然后启动Tomcat,打开浏览器,输入http://localhost:8080/hello/hello.jsp,稍等片刻,浏览器显示“Hello, world.”我们的第一个JSP运行成功![Web开发基础]J2EE的Web应用程序有标准的格式,我们先创建如下结构的目录(请严格区分大小写):
    hello
     |
     +- WEB-INF
         |
         +- classes
         |
         +- lib
         |
         +- web.xml所有需要的class文件均以WEB-INF/classes/为根目录按包名存放,所有的jar文件全部放在WEB-INF/lib下,Web服务器(比如Tomcat)会自动把classes和lib下的所有jar文件动态添加到CLASSPATH中,其中classes目录优先级高,如果classes和lib中某个jar的class全名相同,则只会找到classes下的文件。WEB-INF/web.xml是标准配置文件,负责注册Servlet,Filter及其它用到的资源。在我们的hello应用中,因为没有web.xml,Tomcat会使用缺省的配置文件(什么也不配置)。一般说来,自己写的class包括servlets,filter,javaBean等编译后放在classes目录下,用到的第三方jar(如struts.jar)放在lib下。JSP文件可放在根目录下的任意位置,但是位置不同会影响URL的格式。以上面的hello应用为例,我们指定hello/hello.jsp,则URL为http://localhost:8080/hello/hello.jsp,若是放在hello/admin/hello.jsp,则相应的URL变为http://localhost:8080/hello/admin/hello.jsp,若是放在WEB-INF下,则用户不可直接访问此JSP文件,只能通过RequestDispatch间接访问,此方法可向用户屏蔽真实的URL,在struts等Web框架中被广泛使用。[发布Web应用程序]
    发布Web应用程序非常简单,直接使用jar命令将整个hello目录打包,命名为xxx.war,然后复制到另一台计算机的%TOMCAT_HOME%/webapps/下(或者别的Web服务器如Resin,WebLogic也可),启动服务器,它会自动找到这个war文件并解压安装。
      

  4.   

    多谢楼上的,我找到了这个目录D:\Tomcat 5.5\common\lib  里面都是*.jar文件,不知道是不是楼上所说的,但是我把这个添加到系统变量中去后仍然不能运行。显示的错误信息和上面的是一样的。
      

  5.   

    3楼的大哥,问题是我现在的servlet程序连.class文件都生成不了啊。
      

  6.   

    把servlet的包添加到classpath应该可以编译通过的
      

  7.   

    就是这个文件,我添加了的,但是还是不行,我又换了common/lib/这个还是不行
      

  8.   

    to  believefym(暮色,miss,迷失,miss) 多谢你了,先给你留至少50分了!刚才的问题解决了,就是按着你的配置办的,不知道第一次为什么没有运行成功,但是第二次就可以了。我的电脑够怪的。还请问我现在要配置自己的站台,是不是一定要把自己的站台建到webapps下面呢?我配置了的,放到webapps下面的话不用配置server.xml文件中的context参数就可以直接运行,当然相应的WEB-INF下的web.xml文件还是不可少的。如果放到与webapps平行的目录就不行了,不知道是不是自己的站台不能够任意配置?如果能的话应该怎么配置,谢谢了!这个问题解决马上结贴。
      

  9.   

    修改server.xml
          <Host name="localhost" appBase="D:/webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">appBase改成自己的目录,默认是webapps,这里改成了D:/webapps
    可能不同版本的tomcat配置有些不一样,我这个是5.5.11,跟4.x版本的差别好像有点大的,不过大体是差不多的
      

  10.   

    1. 就在这个CSDN.net 搜索:为什么 Java 需要包? classPath 何用?2. 下载 Tomcat Admin .
    http://apache.justdn.org/jakarta/tomcat-5/v5.5.12-alpha/bin/apache-tomcat-5.5.12-admin.zip下载这个 Tomcat 管理程序, 你可以看看你执行每一次配置操作然后 Commit Changes 比较变化,
    比较过程可以借助 CVS / SVN 等版本控制软件来做,这样你可以看明白 Tomcat 每一个配置是什么用途, 如果需要下载版本控制系统软件的 URL , 请看:
    http://blog.csdn.net/humanity/archive/2005/09/12/478533.aspx这个 Tomcat Admin 默认需要 登录用户具有 Admin 角色 ( 他的 web.xml 中配置了). 按照 .zip 中的 readme.txt 放置解压后的东西到相应的目录。
      

  11.   

    多谢楼上的会出现这个错误:TTP Status 404 - Servlet hello is not available--------------------------------------------------------------------------------type Status reportmessage Servlet hello is not availabledescription The requested resource (Servlet hello is not available) is not available.
      

  12.   

    servlet需要在web.xml文件中配置过,具体看楼上给你的