HTTP Tomcat Servlet

  • HTTP Tomcat Servlet
    • HTTP
      • 相关的概念
        • Web:广域网,通过浏览器访问服务器的站点
        • JavaWeb:通过Java技术来实现的Web服务器
        • BS: Browser Server 浏览器服务器模式
          • 请求和响应的方式,通信协议使用HTTP
        • 资源分类
          • 静态资源:HTML CSS JavaScript
          • 动态资源:Java写的程序,运行在服务器端,生成网页或获取到服务器端的数据
          • 数据保存在数据库中
          • 使用HTTP协议访问
      • Hyper Text Transfer Protocol 超文本传输协议
        • 作用:传输HTML
        • 特点
          • 1. 基于TCP协议
          • 2. 基于请求-响应的模型访问服务器
          • 3. 无状态协议,不会记录用户的访问状态,多次请求间不能共享数据
      • HTTP请求
        • 三个组成部分
          • 请求行
            • 请求方式:GET或POST
            • URI:访问资源标识
            • 协议和版本:HTTP/1.1
          • 请求头
            • 由多个键值对组成,每个键有自己的含义
          • 请求体
            • GET方法没有请求体,数据在请求行中发送
            • POST方法数据在请求体中发送
        • GET
            • 请求参数在请求行中,没有请求体。
            • 请求参数大小有限制
        • POST
            • POST请求请求参数在请求体中
            • POST数据传输大小没有限制
      • HTTP响应
        • 三个组成部分
          • 响应行
            • 协议和版本:HTTP/1.1
            • 状态码:200
            • 状态信息: OK
          • 响应头
            • 由键值对组成,每个键有自己含义
          • 响应体
            • 服务器返回的数据
              • 字节流
              • 字符流
        • 响应格式
        • 常见状态码
          • 200 OK 客户端请求成功
          • 304 Not Modified 没有修改,使用缓存
          • 404 Not Found 请求资源不存在
          • 405 没有重写doGet和doPost方法
          • 500 Internal Server Error 服务端发生不可预期的错误
    • Tomcat
      • 介绍
        • Web容器(Web服务器)运行在服务器端的软件,我们写的Servlet必须运行在Web容器中,由Web容器来调用
        • JavaEE:Java Enterprise Edition 企业版,功能更强大。
          • 13种规范
        • JavaSE:Java Standard Edition 标准版
      • 安装
        • zip压缩包,直接解压就可以使用。要求:目录结构不要太深,不要放在汉字的目录下
        • 关注3个目录
          • bin:可执行文件
            • 启动:startup.bat
            • 关闭:shutdown.bat
          • conf:配置文件
            • 核心配置文件:server.xml
          • webapp:发布项目目录
      • 运行
        • 确认JDK是否安装配置好了
          • 命令行:java -version
        • 启动:直接在bin目录下双击startup.bat
          • 打开浏览器:http://localhost:8080
        • 关闭
          • 直接×掉运行窗口:强制关闭
          • bin\shutdown.bat:正常关闭
          • Ctrl+C:正常关闭
        • 常见问题
          • 没有配置JDK的环境
          • 控制台乱码
            • 修改conf/logging.properties 将所有的UTF-8换成GBK
          • 端口号被占用
            • 找到占用端口号的程序,将程序终止
            • 修改tomcat默认的端口号
              • 修改conf/server.xml
              • 改完后要重启服务器
      • 部署工程
        • 包的类型
          • jar包:普通的Java工程的包
          • war包:Web工程的包
        • 直接复制到webapp目录下
          • 采用压缩文件.war的方式
            • 将整个项目使用压缩工具打包成一个zip文件,注:在目录的下一级打包
            • 改zip的扩展名为war
            • 复制到webapps目录下,tomcat会自动解压成一个同名的目录。
        • 使用单独的xml配置文件(idea默认的方式)
          • 创建一个xml文件:C:\apache-tomcat-9.0.45\conf\Catalina\localhost\
          • 文件名是访问地址:通过path属性指定访问地址
          • 内容指向物理地址 Context docBase
            • Context中C是大写
            • 最后有/结束标记
          • 配置方式
            • 如果文件名不是叫index.html则文件名也要写出来
    • idea中创建Web工程
      • 安装JBLJavaToWeb插件
        • 1. 在线安装
        • 2. 本地安装
      • 创建Web工程
        • 1. 创建正常的maven工程
        • 2. 使用插件将maven工程转成web工程
          • 打包类型变成war
            • <packaging>war</packaging>
    • IDEA中使用 Tomcat
      • Tomcat配置
      • 部署模块
      • 注:文件是在webapp目录下,不是在WEB-INF目录下。WEB-INF下资源不能在浏览器上访问
    • Servlet(重点)
      • 概念:Servlet 是 Java提供的一门动态web资源开发技术 运行在Tomcat中Java程序,实现Servlet接口
      • 开发第一个Servlet
        • 1. 在pom.xml中导入servlet的jar包
          • <dependency>     <groupId>javax.servlet</groupId>     <artifactId>javax.servlet-api</artifactId>     <version>3.1.0</version>     <!-- 不会最终打包到服务器中去 -->     <scope>provided</scope> </dependency>
        • 2. 编写一个类实现Servlet接口
          • public class Demo1Servlet implements Servlet
        • 3. 重写接口中所有的方法,其中service()方法用来处理用户的请求
          • @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {     System.out.println("收到了浏览器发送的请求..."); }
        • 4. 在类上使用@WebServlet("/访问地址")注解指定访问地址注:前面一定要加上/
          • @WebServlet("/demo1")
      • 执行流程
        • 由http://localhost:8080找到服务器和Tomcat
        • 由模块访问地址找到相应的模块
        • 由Servlet的访问地址找到Servlet
        • 由Tomcat实例化Servlet,并且调用service()方法
      • 生命周期
        • 方法
          • init() 方法:初始化的时候执行1次
            • loadOnStartup:在tomcat启动的时候就实例化这个Servlet,参数值是一个整数,值越小越先加载
          • service()方法:每次请求都会执行
          • destroy()方法:服务器关闭的时候执行1次
        • 执行流程
        • 一个Servlet在Tomcat容器中只会实例化一次,只会产生一个对象,而且常驻内存。要等到服务器关闭才会销毁。
      • Servlet的继承结构
        • Servlet接口
        • GenericServlet抽象类
        • HttpServlet抽象类
          • doGet 处理Get请求
          • doPost处理Post请求
          • 如果没有重写相应的方法会出现405错误
      • urlPattern的访问地址
        • 精确匹配:访问地址与Servlet地址完全一样 @WebServlet("/Demo4Servlet")
        • 目录匹配:访问某个目录下所有的地址,都会访问这个Servlet @WebServlet("/user/*")
        • 扩展名匹配:访问某种类型的资源,都可以 @WebServlet("*.do") 注:前面没有/
        • 任意匹配: 任何一个地址都可以访问 @WebServlet("/*")
        • 访问原则
          • 哪个地址更接近,访问哪个
          • 以/开头的访问地址,比扩展名结尾的访问地址,优先级更高
      • XML的方式
        • <!-- 配置demo5的访问地址 --> <servlet>     <!-- servlet的名字 -->     <servlet-name>demo5</servlet-name>     <!-- servlet完整的类名:包中+类名 -->     <servlet-class>com.itheima.servlet.Demo5XmlServlet</servlet-class> </servlet> <!-- servlet映射 --> <servlet-mapping>     <!-- 名字与上面一样 -->     <servlet-name>demo5</servlet-name>     <!-- 访问地址:以/开头 -->     <url-pattern>/demo5</url-pattern> </servlet-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值