J2EE中Servlet实现的三种方法

来源:互联网 发布:java 图形界面案例 编辑:程序博客网 时间:2024/06/01 08:58

方法一:实现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);    }}
0 0