Tomcat

Tomcat

一、Web相关概念

  • 软件构架

    • C / S:客户端 / 服务器端
    • B / S:浏览器 / 服务器端
  • 资源分类

    • 静态资源:所以用户访问后得到的结果是一样的

      如:html,css,JavaScript

    • 动态资源:每个用户访问相同资源后得到的结果可能不一样

      如:servlet,jsp,php,asp

  • 网络通信三要素

    • IP:电子设备(计算机)在网络中的唯一标识
    • 端口:应用程序在计算机中的唯一标识(0~65536)
    • 传输协议:规定了数据传输的规则
      • 基础协议:
        • TCP:安全协议,三次握手,速度稍慢
        • UDP:不安全协议,速度快(可能会丢包)
  • Web服务器软件

  • 服务器:安装了服务器软件的计算机

  • 服务器软件:接收用户的请求,处理请求,做出响应

  • Web服务器软件:接收用户的请求,处理请求,做出响应

    • 在Web服务器软件中,可以部署Web项目,让用户通过浏览器来访问这些项目
    • Web容器
  • 常见的java相关的Web服务器软件

    • weblogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费
    • webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费
    • JBOSS:JBOSS公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费
    • Tomcat:Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet / jsp,开源免费
  • JavaEE:Java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范

二、Tomcat目录下的文件及其功能

在这里插入图片描述

文件名功能
bin文件夹存放可执行文件
config文件夹存放配置文件
lib文件夹存放依赖jar
logs文件夹存放日志文件
temp文件夹存放临时文件
webapps文件夹存放web项目
work文件夹存放运行时的数据

三、注意事项

  • cmd命令:netstat -ano能查看计算机当前所有进程及其占用的端口,杀死对应进程可以解决Tomcat启动时端口被占用的情况
  • 80端口是http协议的默认端口号

四、Servlet基础入门

  • 概念server applet,运行在服务器端的小程序
    Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则
    将来我们自定义一个类,实现Servlet接口,复写方法

  • 创建一个类,实现Servlet接口
package cn.chao.web.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo01 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    //提供服务的方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("hello  servlet");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

  • Servlet中的生命周期:
    • 被创建:执行init方法,只执行一次
      • Servlet的创建时机可在标签下配置:
        • 第一次访问时创建:值为负数(默认值)
        • 在服务器启动时创建:值为0或正整数
    • 提供服务:执行service方法,执行多次
      • 每次访问Servlet时,Service方法都会被调用一次
    • 被销毁:执行destroy方法,执行一次
      • Servlet被销毁时执行,服务器关闭时,Servlet被销毁
      • 只有服务器正常关闭时才会执行destroy方法
      • destroy方法在Servlet被销毁之前执行,一般用于释放资源

  • IDEA中配置Servlet的方法

    • 第一种方式:在web.xml中配置
      在这里插入图片描述

      <!--配置Servlet,在<web-app>标签之间添加以下代码-->
          <servlet>
              <servlet-name>demo01</servlet-name>
              <servlet-class>cn.chao.web.servlet.ServletDemo01</servlet-class>
          </servlet>
      
          <servlet-mapping>
              <servlet-name>demo01</servlet-name>
              <url-pattern>/demo01</url-pattern>
          </servlet-mapping>
      

      执行原理:

      • 当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
      • 查找web.xml文件,是否有对应的标签体内容
      • 如果有,则再找到对应的全类名
      • Tomcat会将字节码文件加载进内存并且创建对象
      • 调用其方法
    • 第二种方式:使用注解配置

      Servlet3.0中支持注解配置,可以不需要配置web.xml,步骤如下:

      • 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
      • 定义一个类,实现Servlet接口
      • 复写方法
      • 在类上使用@WebServlet注解进行配置
        @WebServlet(“资源路径”)
      package cn.chao.web.servlet;
      
      import javax.servlet.*;
      import javax.servlet.annotation.WebServlet;
      import java.io.IOException;
      
      @WebServlet("/demo")
      public class ServletDemo1 implements Servlet {
          @Override
          public void init(ServletConfig servletConfig) throws ServletException {
      
          }
      
          @Override
          public ServletConfig getServletConfig() {
              return null;
          }
      
          @Override
          public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
              System.out.println("servlet3");
          }
      
          @Override
          public String getServletInfo() {
              return null;
          }
      
          @Override
          public void destroy() {
      
          }
      }
      

    • 运行Servlet
    package cn.chao.web.servlet;
    
    import javax.servlet.*;
    import javax.servlet.annotation.WebServlet;
    import java.io.IOException;
    
    @WebServlet("/demo")
    public class ServletDemo1 implements Servlet {
        @Override
        public void init(ServletConfig servletConfig) throws ServletException {
            System.out.println("init.....");
        }
    
        @Override
        public ServletConfig getServletConfig() {
            return null;
        }
    
        @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("service.....");
        }
    
        @Override
        public String getServletInfo() {
            return null;
        }
    
        @Override
        public void destroy() {
            System.out.println("destroy.....");
        }
    }
    

    点击运行该程序:
    在这里插入图片描述

    运行成功后会自动跳转至网页:
    在这里插入图片描述
    在网址后面添加@WebServlet("/demo")中的路径demo

    在这里插入图片描述

    刷新后查看IDEA
    在这里插入图片描述

    运行成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超霸霸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值