1、首先在eclipse中创建以下目录(所有的代码保存在结尾):
(1)上图中的web.xml代码如下所示,可以从其他项目里面拷贝过来。
(2)为Servlet项目创建路径,把当前项目的classpath路径改成webapp/WEB-INF下的classes中,步骤如下:
点击确定之后,classes目录就会被隐藏起来,如下图:
2、拷贝Tomcat根目录中/lib/servlet-api.jar到项目的WEB-INF/lib目录中,并做build path.
build paith之后会在Refernced Libraries目录中看到servlet-api.jar文件。
3、创建HelloServlet类实现Servlet接口,并导入Servlet接口中的所有要重写的方法,如下:
(1)按Ctrl+鼠标左键点击Servlet查看源代码,发现找不到源代码文件,这就需要把在网站上下载好的apache-tomcat-7.0.91-src.zip,文件导入就可以看到源代码了,如下图:
然后删掉原来HelloServlet类中重写的servlet方法,重新导入就可以看到更完整的参数和方法了:
4、在service(ServletRequest req, ServletResponse res)方法,打印一句话。
5、配置servlet,因为我们刚刚创建的HelloServlet类跟Tomcat没有任何关联,我们需要告诉Tomcat来帮我们管理HelloServlet类(Tomcat是Servlet的容器,会负责Servlet对象的生命周期和方法调用)。所以,得以配置的形式,告诉Tomcat来帮我们管理自定义的Servlet类。
(1)打开web.xml,加入如下代码:
6、最后一步,部署项目,并访问,把webapp的根路径复制到,Tomcat根目录下的D:\web\apache-tomcat-7.0.57\conf\servlet.xml文件中:
6、最后一步,部署项目,并访问,把webapp的根路径复制到,Tomcat根目录下的D:\web\apache-tomcat-7.0.57\conf\servlet.xml文件中:
7、在eclipse中启动tomcat服务器,然后在浏览器地址栏输入http://localhost:9090/day3/hello,就可以看到控制台输出,刚刚要打印的文字了。
所有代码:
HelloServlet:
package com._520it._01_hello;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HelloServlet implements Servlet{
@Override
public void init(ServletConfig config) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("第一个Servlet类");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<!-- web的配置 -->
<!-- 告诉Tomcat来管理Servlet类 -->
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com._520it._01_hello.HelloServlet</servlet-class>
</servlet>
<!-- 向外暴露Servlet类的一个资源名称,供外部直接访问该资源名称以/打头-->
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>