J2EE中Servlet实现的三种方法

方法一:实现Servlet接口:全部都要重写方法

package com.company.project;

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;

/**
 * 这是我的第一个Servlet程序
 */
public class Test01 implements Servlet {

    // 将servlet的实例销毁(清理内存)
    // 3种情况调用这个方法:reload或者关闭tomcat或者关机
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        System.out.println("调用了销毁内存.");
    }

    @Override
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }

    // 获取信息
    @Override
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }

    // 初始化这个servlet,相当于类的构造函数,这个函数只含被调用一次
    // 当用户第一次调用的时候调用
    @Override
    public void init(ServletConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("调用了servlet的初始化方法");
    }

    // 这个函数就是用来处理业务逻辑
    // 这个函数会被调用多次,每次访问就会被调用
    // req用于获得客户端的信息
    // res用于客户端返回信息
    // 现在开发的程序客户端都是浏览器

    int i = 0;

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // TODO Auto-generated method stub

        i++;
        System.out.println("第" + i + "调用了servlet的service方法");
        // 如何返回到浏览器上去
        PrintWriter pw = res.getWriter();
        pw.print("Hello Lee.");

    }

}

方法二:继承GenericServlet:重写servlet方法

package com.company.project;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Test01 extends GenericServlet {

    private static final long serialVersionUID = 6306669133189570823L;

    // 重写方法
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // 定义自己的业务逻辑
        try {
            // 设置显示的中文尾GBK
            res.setContentType("text/html; charset=GBK");
            PrintWriter pw = res.getWriter();
            pw.println("这是用GenericServlet父类的方法实现servlet.");
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

方法三:继承HttpServlet

package com.company.project;

import java.io.IOException;
import java.io.PrintWriter;

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

//这是第三种开发servlet的方法

public class Test01 extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest req, HttpServletResponse res) {
        // 这个方法写业务逻辑
        res.setContentType("text/html; charset=GBK");
        try {
            PrintWriter pw = res.getWriter();
            pw.print("这是第三种方法开发servlet.");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void doPost(HttpServletRequest req, HttpServletResponse res) {
        // 这个方法就是包装
        this.doGet(req, res);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值