使用内置tomcat创建WEB项目

    大家知道,WEB应用程序有四个组成部分:网页、WEB服务器、浏览器、以及http协议。四个组成部分中,最为重要的就是WEB服务器。

    Web服务器主要用提供网页浏览服务的计算机。接收客户端请求,然后根据请求向客户端返回结果。但是WEB服务器只能向客户端提供静态的html响应信息。所以,为了丰富响应信息的灵活性,就需要在WEB服务器基础上添加辅助应用。辅助应用可以在WEB服务器接收到请求信息以后,进行一系列的业务处理,然后动态产生响应信息。而java解决辅助应用的方案,就是WEB容器+Servlet方式。由WEB容器提供底层操作的服务,比如:解析流,封装请求响应对象,线程管理等,然后,预留Servlet接口,交给开发者书写业务操作。

    在开发中,很多时候使用tomcat做为WEB应用服务器。tomcat源自于apache软件基金会jakarta项目。tomcat是一款免费的、开源的、性能稳定、技术成熟的WEB容器产品。

    tomcat即提供了WEB服务器的功能,可以接收客户端请求,产生静态的html响应信息。又可以做为WEB容器,向客户端提供动态数据。在以前很多项目中,都是从官网中下载tomcat,然后,将WEB应用布署在tomcat中。当启动tomcat以后,就可以进行客户端的访问处理了。

    不过,在springBoot出现以后,tomcat容器就已经在springBoot框架中内置了,这样的好处是开发WEB项目时,可以省去外置tomcat的一些管理,也可以集成布署的操作,也方便WEB项目的打包。那么内置tomcat是如何实现的呢?我们来看一下。

    首先,在maven项目中添加tomcat依赖:

<dependency>
     <groupId>org.apache.tomcat.embed</groupId>
     <artifactId>tomcat-embed-core</artifactId>
     <version>9.0.36</version>
</dependency>

这样,tomcat的jar包就有了,相关的API也有了。现在,我们按照Servlet规范,创建一个Servlet实现类对象。

public class TestServlet extends HttpServlet {
     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  {
          this.doPost(req,resp);
     }
   
    protected void doPost(HttpServletRequest req,HttpServletResponse resp)  {
             resp.getWriter().println("hello");
     }
}

好,现在看一下,如何启动tomcat。创建启动类MainServer:

public class MainServer {
    public MainServer(){
        //创建tomcat对象
        Tomcat tomcat = new Tomcat();
        //设置启动端口
        tomcat.setPort(8088);
        //引导Http引擎
        tomcat.getConnector();

        //创建上下文
        Context context = tomcat.addContext("", null);

            //启动tomcat
            tomcat.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

   public static void main(String[] args){
    new MainServer();
    }
}

现在来看一下如何注册Servlet,在调用tomcat.start(); 方法,启动tomcat之前,添加servlet的注册信息

Wrapper servlet = Tomcat.addServlet(context,  "testServlet", new TestServlet());//注册Servlet
servlet.setLoadOnStartup(1);//容器启动初始化Sevlet
servlet.addMapping("/test");//配置Servlet的访问路径

好了,运行启动类,然后,打开浏览器输入http://localhost:8088/test就可以看到 hello 响应信息了。

我们现在使用maven创建好了内置tomcat,不过,内置tomcat的开发和外置tomcat的开发有很多不同。内置tomcat不再象外置tomcat一样有配置文件,可以改端口。也不象Servlet规范一样,在WEB应用程序中有web.xml进行WEB组件的注册。它有自己的API和管理WEB组件的方式,后续文章中,我们来继续看一下。

 

posted @ 2020-12-31 18:06  朗沃张成峰  阅读(314)  评论(0)    收藏  举报