servlet的三种实现方式

一般来说,写一个servlet,有三种实现方式:

1、实现Servlet接口。

2、继承GenericServlet。

3、继承HttpServlet。

第三种方式是现在比较常用的。

第一种:

package com.tsinghua;
//这是我的第一个servlet,使用实现servlet接口的方式来开发。

import javax.servlet.*;

import java.io.*;


public class Hello implements Servlet{

	/**
	 * 销毁servlet实例,释放内存
	 * 3种情况:
	 * 1.reload 该servlet(所在的webapps)
	 * 2.关闭tomcat
	 * 3.关机
	 */
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("destroy it");
		
		
	}

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

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return "";
	}

	/**
	 * 初始化该servlet,类似于构造函数。
	 * 该函数只会被调用一次。当用户第一次访问该servlet时被调用。
	 */
	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("init it");
	}

	
	/**
	 * 这个函数用于处理业务逻辑
	 * 程序员应该把业务逻辑代码写在这里
	 * 这个函数会被调用多次,当用户每访问该servlet时都会被调用。
	 * req:用来获得客户端的信息
	 * res:用来对客户端返回信息
	 */
	@Override
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		System.out.println("service it");
		//从res中得到PrintWriter
		PrintWriter pw=res.getWriter();
		pw.println("hello,world");
		
		
		
	}
	
}

第二种:

package com.tsinghua;
//这是我的第二个servlet,通过继承GenericServlet来开发

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

import java.io.*;


public class HelloGen extends GenericServlet{

	/**
	 * 重写service方法即可。
	 */
	@Override
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		//返回HelloWorld!generic
		PrintWriter pw=res.getWriter();
		pw.println("HelloWorld!generic");
		
		
		
	}

	
	
}

第三种:

package com.tsinghua;
//这是我的第3个servlet,通过继承HttpServlet来开发

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

import java.io.*;


public class HelloHttp  extends HttpServlet{
	
	/**
	 * 处理get请求
	 * req:客户端的请求信息
	 * resp:客户端的返回信息
	 */
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
	{
		//业务逻辑在这里写。
		try {
			PrintWriter pw=resp.getWriter();
			pw.println("Hello,Http");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	/**
	 * 处理post请求
	 * req:客户端的请求信息
	 * resp:客户端的返回信息
	 */
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
	{
		//post和get请求一样
		this.doGet(req, resp);
	}

}

web.xml中配置servlet






  Welcome to Tomcat
  
     Welcome to Tomcat
  
  
  
  
  
  	hello
  	com.tsinghua.Hello
  
  
  
  	hello
  	/hello
  
  
  
  
  	helloGen
  	com.tsinghua.HelloGen
  
  
  
  	helloGen
  	/helloGen
  
  
  
  
  	helloHttp
  	com.tsinghua.HelloHttp
  
  
  
  	helloHttp
  	/helloHttp
  
  
  
  



你可能感兴趣的:(servlet)