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