导读
本文分为两部分 1. 实现思路分析部分 2. 实现代码部分
运行代码需导入tomcat7maven插件,代码基于TomcatAPI实现
一. 实现思路分析
使用Tomcat的API实现, 步骤如下
- 新建一个Tomcat对象
- 设置Tomccat的端口号
- 设置Context目录
- 添加Servlet容器
- 调用Tomcat对象start()
- 强制Tomcat等待
二.实现代码
MyTomcatServer 代码如下
public class MyTomcatServer {
public static void main(String[] args) throws Exception {
// 把目录的绝对路径获取到
String classpath = System.getProperty("user.dir");
System.out.println(classpath);
Tomcat tomcat = new Tomcat();
// 设置Tomcat的端口
Connector connector = tomcat.getConnector();
connector.setPort(9091);
// 设置Host
Host host = tomcat.getHost();
host.setName("localhost");
host.setAppBase("webapps");
// 加载class
Context context = tomcat.addContext(host, "/",classpath);
if (context instanceof StandardContext){
StandardContext standardContext = (StandardContext) context;
// 加载自己的web.xml配置文件
standardContext.setDefaultContextXml("D:/workAPP/apache-tomcat-8.5.39-windows-x64/apache-tomcat-8.5.39/conf/web.xml");
// 设置Servlet
Wrapper wrapper = tomcat.addServlet("/", "MyServlet", new MyServlet());
// 设置访问路径
wrapper.addMapping("/lilei");
}
// Tomcat启动
tomcat.start();
// 强制Tomcat server等待, 避免main线程执行结束后关闭
tomcat.getServer().await();
}
}
Servlet代码如下:
public class MyServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("ok!!");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type","text/html;charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.write("<h1>ok!!! <b>李磊加油!!</h1>");
writer.close();
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
三. 结束
感谢读者朋友的阅读! 前路愿与大家一同探索!!!