1. Servlet就是一个特殊的java类,它必须实现javax.servlet.Servlet接口。Java定义了一个实现了Servlet接口的基本类javax.servlet.GenericSrevlet用于新建类继承它。Javax.servlet.HttpServlet类就是继承于它。
2. 完整的手动配置Servlet测试。
2.1 安装和配置jdk。安装后配置环境变量java_home,path,classpath。
在cmd中测试:
public class HelloWlord
{
public static void main(String[] args)
{
System.out.println("HelloWlord!");
}
}
2.2 安装tomcat 二进制版本。
2.3 编写Servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet
{
public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
PrintWriter out = response.getWriter();
out.println("Hello,Servlet!");
}
}
2.4 将tomcat安装目录下的common/lib目录里的servlet-api.jar加入到环境变量classpath。用于下一步编译Servlet类的时候编译器能够找到需要导入的包。
2.5 在cmd中使用javac命令编译HelloServlet类。
2.6 在tomcat的webapps文件夹中新建文件夹,命名为hello,在hello文件夹中新建文件夹classes,将编译产生的HelloServlet.class文件拷贝到classes文件夹。在hello文件夹中新建文件夹WEB-INF,在WEB-INF中在复制一份空的web.xml。在web.xml中加入如下配置:
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> helloServlet </servlet-name>
<url-pattern>/helloservlet</url-pattern>
</servlet-mapping>
2.7 在浏览器中访问http://localhost:8080/hello/helloservlet,访问成功,显示Hello,Servlet!。
3. 关于url-pattern。例如上面的/helloservlet必须是是相对于web应用程序的根目录(tomcat配置文件中的Context),而不是整个web站点(配置文件中的host)。所以上个例子中的http://localhost:8080/hello/helloservlet可以识别,但是如果web应用程序/hello和url-pattern配置即/helloservlet之间如果有附加路径,就不能识别。也就是说,url-pattern能够接受/*和*.do,却不能接受*/。
常用的匹配例子为:/*,/abc/*,*.do,/abc等等。Tomcat按照最具体匹配原则来查找资源。