程序没问题,是你的配置不当。虽然你import了一些东西,但它们没有在你的classpath目录中。import java.servlet.*;
import javax.servlet.*;你import的这两个类,都是jswdk的,所以你要把它们加入你的classpath中。
至于最后的要求是你这个文件要用你的类名来做文件名才行,注意大小写。我不是用的jswdk而是用weblogic,所以我每次不是直接用javac来编译文件,我建了一个批处理,先把编译servlet所要的类库加入classpath中再调用javac来编译。我给出你这个 build.bat文件吧,我可以参考的修改一下让它支持你的 jswdk环境。
一般就是你看一下jswdk提供的几个jar文件,用winzip打开它们,看看你要的 java.servlet.*在什么文件中,把这个文件包含入classpath中即可,(宁多勿缺)。
@ECHO OFFset _CLASSPATH=%CLASSPATH%
set WL_HOME=D:\weblogic
set JAVA_HOME=d:\jdk1.3set CLASSPATH=%CLASSPATH%;%WL_HOME%\classes;
set CLASSPATH=%CLASSPATH%;%WL_HOME%\lib\weblogicaux.jar;
set CLASSPATH=%CLASSPATH%;.;..;../..javac %1 %2 %3set CLASSPATH=%_CLASSPATH%
set _CLASSPATH=
不要import java.servlet.*;
好象没有这个类(反正我一直没有用到)
要引用import javax.servlet.http.*;
问题2:
你把存放helloworld.java目录加到环镜变量CLASSPATH=......
你可以找一个java编辑器如FreeJava,jbuilder....来编辑*.java文件;
下面程序是可以编译运行过的。package helloworld//相应的目录;import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloWorld extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html";
/**Initialize global variables*/
public void init(ServletConfig config) throws ServletException
{
super.init(config);
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}