Serlvet实现的三种方法

第一种方法:实现javax.servlet.Servlet接口,此方法灵活,但却不太方便。

package com.niu;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class IServlet implements Servlet {
	
	/**
	 * 在创建Servlet初始化时被容器调用的初始化方法,仅在会被执行一次.
	 */
	@Override
	public void init(ServletConfig config) throws ServletException {
		
		System.out.println("initialization......");
	}

	@Override
	public ServletConfig getServletConfig() {
		return null;
	}
	
	/**
	 * sersvlet的主要方法,由容器传入的请求(Request)和响应(Response)操作将由这里进行处理.
	 */
	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		res.getWriter().println("Hello,Servlet");
		System.out.print("running......");
	}

	@Override
	public String getServletInfo() {
		return null;
	}
	
	/**
	 * 在关闭tomcat或者reload时由容器调用的销毁方法,仅会被执行一次.
	 */
	@Override
	public void destroy() {
		
		System.out.println("Destroy......");
	}

}

第二种方法:继承javax.servlet.GenericServlet抽象类,此方法非常方便,但是却不太灵活。

package com.niu;

import java.io.IOException;

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

public class EGenericServlet extends GenericServlet {

	/**
	 * 此方法和第一种实现方法内的service功能相同.
	 */
	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		
		res.getWriter().println("Hello,GenericServlet");
		String info = super.getServletInfo();
		res.getWriter().println(info+1);
		System.out.println("running");
	}

}

第三种实现:继承javax.servlet.http.HttpServlet抽象类,此类中的方法不在用abstract修饰方法,方法变的可选,所以大大增加了灵活性,并且使快速开发变的更加效率,这是一个比较常用的实现方式。

package com.niu;

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 EHttpServlet extends HttpServlet {
	
	/**
	 * 处理由容器传入的GET操作,此方法不是必须的.
	 */
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().println("doGET,HttpServlet");
	}
	
	/**
	 * 处理由容器传入的POST操作,此方法不是必须的.
	 */
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().println("doPOST,HttpServlet");
	}
	
	/**
	 * 此方法和前两种实现方法内的service功能相同,但在这里不是必须实现的.
	 */
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().println("service,HttpServlet");
	}

}

猜你喜欢

转载自blog.csdn.net/GeekYoung/article/details/80800527