一般在实际项目开发中,都是使用
继承 HttpServlet 类
的方式去实现 Servlet 程序。
- 1、编写一个类去继承 HttpServlet 类
- 2、根据业务需要重写 doGet 或 doPost 方法
- 3、到 web.xml 中的配置 Servlet 程序的访问地址
1.HttpServlet抽象类
HttpServlet 也是一个抽象类,它进一步继承并封装了 GenericServlet,使得使用更加简单方便,由于是扩展了 Http 的内容,所以还需要使用 HttpServletRequest 和 HttpServletResponse,这两个类分别是 ServletRequest 和 ServletResponse 的子类。代码如下:
abstract class HttpServlet extends GenericServlet{
//HttpServlet中的service()
protected void service(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse){
//该方法通过httpServletRequest.getMethod()判断请求类型调用doGet() doPost()
}
//必须实现父类的service()方法
public void service(ServletRequest servletRequest,ServletResponse servletResponse){
HttpServletRequest request;
HttpServletResponse response;
try{
request=(HttpServletRequest)servletRequest;
response=(HttpServletResponse)servletResponse;
}catch(ClassCastException){
throw new ServletException("non-http request or response");
}
//调用service()方法
this.service(request,response);
}
}
我们可以看到,HttpServlet 中对原始的 Servlet 中的方法都进行了默认的操作,不需要显式的销毁初始化以及 service(),
在 HttpServlet 中,自定义了一个新的 service() 方法,其中通过 getMethod() 方法判断请求的类型,从而调用 doGet() 或者 doPost() 处理 get,post 请求,使用者只需要继承 HttpServlet,然后重写 doPost() 或者 doGet() 方法处理请求即可。
我们一般都使用继承 HttpServlet 的方式来定义一个 servlet。
2.继承 HttpServlet 方法
public class ServletDemo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("doGet 方法");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("doPost 方法");
doGet(req,resp);
}
}
3.web.xml 中的配置
<!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
<servlet>
<!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
<servlet-name>ServletDemo</servlet-name>
<!--servlet-class 是 Servlet 程序的全类名-->
<servlet-class>com.xyh.servlet.ServletDemo</servlet-class>
</servlet>
<!--servlet-mapping 标签给 servlet 程序配置访问地址-->
<servlet-mapping>
<!--servlet-name 标签的作用是告诉服务器,
当前配置的地址给哪个 Servlet 程序使用-->
<servlet-name>ServletDemo</servlet-name>
<!--url-pattern 标签配置访问地址
/ 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径
/hello 表示地址为:http://ip:port/工程路径/hello -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
版权声明:本文为dizzy256原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。