没想到,万事开头难,我的第一个Serverlet却是如此的姗姗来迟。还以为Servetlet也像JSP那样简简单单,写出来直接调用就行了。谁知道,一个输出Hello World!的Servlet却花了我整整一个上午的时间。唉!实在是给踌躇满志的我打击太大了。看来,路还远着,我还需要很长的时间在Java的这条路上上下求索......
一个简单的输出"Hello World!"的Servlet程序很短,下面是整个文件的代码:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException {
PrintWriter out = response.getWriter();
out.println("Hello World!");
}
}
上面的代码就是一个简单的Servlet了。编译后生成的HelloWorld.class就可以用做Servlet了。对于tomcat5.0来说,Servlet都必须放在$TOMCAT_HOME/WEB-INF/classes目录下.然后通过输入地址栏进行访问,例如我的JSP项目的虚拟目录为jsplearn,tomcat端口配置为9000可以通过Http://localhost:9000/jsplearn/HelloWorld来访问上面的Servlet. 如果HelloWorld是处在包中,则HelloWorld.class所存在WEB-INF/classes目录下的子路径也必须与包的路径一致,例如HelloWorld.class处于包test中,则HelloWorld.class必须置于$TOMCAT_HOME/WEB-INF/classes/test目录下,通过Http://localhost:9000/jsplearn/test/HelloWorld访问。
根据上面的方法就能运行了么?如果是就好了,就不用我郁闷了老半天,一个Servlet都没运行起来。Tomcat可没那么简单,还得对其进行配置。需要将Servlet配置在WEB-INF目录下的web.xml中。web.xml配置如下
<web-app>
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
//不包含在package中的HelloWorld配置
<servlet>
<servlet-name>TestPackage</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name> //包含在package test中的HelloWorld配置
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TestPackage</servlet-name>
<url-pattern>/test/HelloWorld</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
将上面的xml保存为web.xml文件后,置于WEB-INF目录下,重启Tomcat就可以访问Servlet了。至此,终于迈出了迈向JSP的第一步。