Servlet的创建主要有三种方法
1、 实现Servlet接口。
2、 继承GenericServlet类。
3、 继承HttpServlet类。
一个Servlet对象的正常运行需要进行适当的配置,以告知Web容器哪一个请求调用哪个Servlet对象处理,对Servlet起到注册作用,Servlet的配置包含在web.xml文件中。主要通过以下两步进行设置:
对于下面的案例我们先看一下项目的目录结构:
1、 在web.xml文件中通过<servlet>标签声明一个Servlet对象,在此标签下包含两个主要子元素,分别为<servlet-name>与<servlet-class>。其中,<servlet-name>元素用于指定Servlet的名称,此名称可以自己定义。<servlet-class>元素用于指定Servlet对象的位置,包含他的包名与类名。
其声明语句如下:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>Servlet.MyServlet</servlet-class>
</servlet>
2、 在web.xml文件中声明了Servlet对象后,需要映射访问Servlet的URL,此操作使用<servlet-mapping>标签进行配置。<servlet-mapping>标签包含两个子标签,分别是<servlet-name>与<url-pattern>其中<servlet-name>元素与<servlet>标签中的<servlet-name>元素相对应,不可以随意更改,<url-pattern>元素用于映射访问url,
其配置方法如下:
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
Servlet的创建
创建一个名为MyServlet的Servlet对象,他继承了HttpServlet,在此类中我们暂时重新doGet()方法,用于处理HTTP的get请求,通过PrintWriter对象进行简单输出,代码如下:
package Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
在前面对MyServlet已经在web.xml中进行了配置,其中访问URL的相对路径为:/servlet/MyServlet,因此要调用MyServlet对象对请求进行处理,只需要运行服务器后在浏览器地址栏中输入:http://localhost:8080/ServletDemo/servlet/MyServlet即可。
浏览器中的显示效果为: