Servlet的三种实现方式

第一种:实现javax.servlet.Servlet接口
显见要实现接口未实现的方法。
Java:

package d0322_01_Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class servletDemo1 implements Servlet{

    public servletDemo1(){
        System.out.println("这是构造方法!");
    }

    @Override
    public void destroy() {
        System.out.println("销毁");       
    }

    @Override
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public String getServletInfo() {
        System.out.println("没啥用");
        return "没啥用";
    }
    @Override
    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("这是初始化!");
    }
    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {
        System.out.println("服务");
        PrintWriter pw = arg1.getWriter();
        pw.write("Hello!");
    }
}

第二种:继承javax.servet.GenericServlet类(适配器模式)
Java:

package d0321_01_servlet;

import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class ServletDemo2 extends GenericServlet{

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        System.out.println("服务!");      
    }
}

第三种:继承javax.servlet.http.HttpServlet类(模板方法设计模式)
Java:

package d0321_01_servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo3 extends HttpServlet{
    @Override
    // 1.处理GET请求
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("---------doGet---------");

    }
    @Override
    //1.处理Post请求
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("---------doPost---------"); 
    }
}

.Xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <!--创建一个Servlet实例  -->
  <servlet>
        <servlet-name>servletDemo1</servlet-name>
        <servlet-class>d0321_01_servlet.ServletDemo1</servlet-class>
        <!-- 让Servlet在服务器启动时就创建 -->
        <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- 给Servlet提供(映射)一个可供客户端访问的URI -->
  <servlet-mapping> 
    <servlet-name>servletDemo1</servlet-name>
    <url-pattern>/demo1</url-pattern>
  </servlet-mapping>


  <!--创建一个Servlet实例  -->
  <servlet>
        <servlet-name>ServletDemo2</servlet-name>
        <servlet-class>d0321_01_servlet.ServletDemo2</servlet-class>
  </servlet>
  <!-- 给Servlet提供一个可供客户端访问的URI -->
  <servlet-mapping>
        <servlet-name>ServletDemo2</servlet-name>
        <url-pattern>/Demo2</url-pattern>
  </servlet-mapping>

 <!--创建一个servlet实例  -->
 <servlet>
        <servlet-name>ServletDemo3</servlet-name>
        <servlet-class>d0321_01_servlet.ServletDemo3</servlet-class>
 </servlet>
 <!-- 给servlet提供一个可供客户端访问的URI -->
 <servlet-mapping>
        <servlet-name>ServletDemo3</servlet-name>
        <url-pattern>/Demo3</url-pattern>
 </servlet-mapping>

</web-app>

小提示:Servlet是底层的接口(要实现的方法太多,不常用)
GenericServlet类实现了Servlet接口(只需重写service,也不常用)
HttpServlet类实现了GenericServlet类(只需重写doGet与doPOST,常用)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值