Embed Tomcat 使用例程(9.0.12版本)
Tomcat作為Servlet容器和JSP容器,可以部署Web應用程序,但是有時候需要編寫獨立的前置程序,僅僅需要servlet,這個時候embed方式就很有用處了。
百度搜索結果,包括《Tomcat架構解析》書中給的,基本都運行不了,下面給出作者的樣例程序。
第一步:下載9.0.12Embed版本,并將所有jar包引入eclipse工程。
package myTomcat;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
public class Testproc? {
public static void main(String[] args)? {
// TODO Auto-generated method stub
Tomcat tomcat = new Tomcat();
HomeServlet myservlet = new HomeServlet();
Context context = tomcat.addContext("", null);
Tomcat.addServlet(context, "myservlet", myservlet);
context.addServletMappingDecoded("/", "myservlet");
System.out.println(tomcat.getConnector().getPort());
? ? ? ? try {
tomcat.start();
} catch (LifecycleException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}?
? ? ? ? tomcat.getServer().await();? ? ?
}
}
程序HomeServlet.java
package myTomcat;
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 HomeServlet extends HttpServlet {?
? ? private static final long serialVersionUID = 1L;?
? ? protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {?
? ? ? ? System.out.println("request scheme: " + req.getScheme());?
? ? ? ? resp.getWriter().print("<h1>hello tomcat</h1>");?
? ? }?
}?
第二步:瀏覽器輸入localhost:8080