应用的内嵌式Tomcat
之前是下载一个tomcat,把应用项目部署到tomcat上。
现在是直接在pom.xml文件中添加一个Tomcat的依赖。运行是直接 new Tomcat,在来部署。
步骤:
- 创建项目(以servlet)
servlet的创建注意事项:HelloServlet是继承了HttpServlet
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
System.out.println("hello servlet");
resp.getWriter().print("hello servlet");
}
}
测试创建并部署Tomcat(与原来的区别)
- 创建Tomcat对象
Tomcat tom=new Tomcat();
- 创建连接器对象(协议)
Connector conn=new Connector("HTTP/1.1");
- 给连接器设置端口号(端口这些我们后期可以放入(java/mian/resource)下创建的application.properties)
conn.setPort(8080);
- 设置Tomcat对象的连接器
tom.getServcie().addConnector(conn);
-
部署servlet,依据sevrce.xml中的Context,来进行内嵌的部署
5.1:创建context对象Context cnt=tom.addContext(“路径”,“项目名字”)
5.2:添加servlet
Tomcat.addServlet("cnt","这里随意","class的包路径")
5.3:映射servlet
cnt.addServletMappingDecoded("/hello","跟5.2要一致");
6.启动并测试
//4.启动tomcat
conn.start();
System.out.println("start is ok");
//5.阻塞当前线程
tom.getServer().await();
原先部署
servcex.xml文件的自动部署,这里有Context对象
在web.xml中部署servlet
<servlet>
<servlet-class>HelloServlet</servlet-class>
<servlet-name>com.java.servlet.HelloServlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
总结:
内嵌的tomcat与原来在web.xml部署的区别
- 内嵌直接在pom.xml文件添加tomcat的依赖。底层运行时就会用上述的套路就运行,(直接new Tomcat)
- 后期注册过滤器啥都可以直接ctn…。