Servlet详解(上)

本文详细介绍了Servlet的基础知识,包括Servlet的工作原理、IDEA中创建和部署Web项目、手动实现Servlet程序、HTTP协议通信流程、请求和响应报文以及常见状态码。涵盖了从开发环境配置到项目部署的完整过程。
摘要由CSDN通过智能技术生成

一、Servlet简介

Servlet运行在服务端的Java小程序,是sun公司提供—套规范(接口)用来处理客户端请求、响应给浏览器的动态资源。Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener),且最重要。

Tomcat

  1. 目录结构
    在这里插入图片描述
  2. 项目部署
    Tomcat是web服务器,我们的项目应用是部署在webapps下,然后通过特定的URL访问。

创建项目

  • 在webapps中建立文件夹(项目应用),比如:myweb
    • 创建WEB-INF文件夹,用于存放项目的核心内容
      • 创建classes,用于存放.class文件
      • 创建lib,用于存放jar文件
      • 创建web.xml,项目配置文件(到ROOT项目下的WEB-INF复制即可)
    • 把网页hello.html复制到myweb文件夹中,与WEB-INF在同级目录

URL访问资源
浏览器地址中输入URL:http://localhost:8080/myweb/hello.html

二、Servlet的工作流程

  1. 客户端(浏览器)发送请求到服务器。
  2. 服务器接受到请求并调用相关的Servlet做业务处理。
  3. 服务器将响应返回给客户端

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、Servlet

3.1、手动实现Servlet程序

  1. 搭建开发环境,将Servlet相关jar包(lib\servlet-api.jar)配置到classpath中
  2. 编写一个类去实现Servlet接口,实现service方法,处理请求,并响应数据
  3. 编译MyServlet后,将生成的.class文件放在WEB-INF/classses文件中
  4. 到web.xml中去配置程序的访问地址
package com.first.cyh;

import jakarta.servlet.*;

import java.io.IOException;

public class HelloServlet 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() {

    }
}

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--给Tomcat配置Servlet程序-->
    <servlet>
        <!--给Servlet程序起一个别名,一般是类名-->
        <servlet-name>HelloServlet</servlet-name>
        <!--Servlet程序的全类名-->
        <servlet-class>com.first.cyh.HelloServlet</servlet-class>
    </servlet>

    <!--给Servlet程序配置访问地址-->
    <servlet-mapping>
        <!--告诉服务器我当前配置的地址给哪个Servlet程序用-->
        <servlet-name>HelloServlet</servlet-name>
        <!--
            配置访问地址
            /斜杠在服务器解析时表示地址为http://ip:port/工程路径
            /hello表示地址为http://ip:port/工程路径/hello
        -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

3.2、IDEA部署Web项目

3.2.1、IDEA创建web项目

  1. 创建java项目

  2. 新创建完java项目的目录结构
    在这里插入图片描述

  3. 变java为servlet项目
    在这里插入图片描述

  4. 选择Web Application
    在这里插入图片描述

  5. 更新完成后的目录结构
    在这里插入图片描述

  6. 在WEB-INF目录中新建“classes” “lib”两个文件夹,用于存放相关文件
    在这里插入图片描述

  7. 创建servlet
    在这里插入图片描述

  8. 导入servlet需要的支持包(在Tomcat目录下的lib目录中的servlet-api.jar),然后右击目录,选择Add as Library…
    在这里插入图片描述

3.2.2、IDEA集成Tomcat

  1. 点击files,选择Settings
    在这里插入图片描述

  2. 选择Build,Execution,Deployment下的Aoolication Servers
    在这里插入图片描述

  3. 点击+号,选择Tomcat Server
    在这里插入图片描述

  4. 选择Tomcat安装目录,点击OK即可
    在这里插入图片描述

3.2.3、项目部署到Tomcat

  1. 点击Add Configura
    在这里插入图片描述

  2. 点击+号,选择Tomcat Server,选择Local
    在这里插入图片描述

  3. 点击+号,选择Artifact,添加当前项目
    在这里插入图片描述

3.3.4、关联第三方jar包

  • 在WEB-INF目录下新建lib目录
    在这里插入图片描述

  • 复制jar包到lib目录中
    在这里插入图片描述

  • 右击目录,选择Add as Library…
    在这里插入图片描述

3.3.5、如何导出war包

项目完成时,有时候需要打成war方便部署。war包可直接放入Tomcat的webapps目录中,启动Tomcat后自动解压,即可访问。

  • 点击项目结构
    在这里插入图片描述

  • 选择Artifacts,点击+号
    在这里插入图片描述

  • 选择Archive—>For…
    在这里插入图片描述

  • 构建项目
    在这里插入图片描述

  • 在out\artifacts\目录中,查看生产的war包,把war放入Tomcat的webapps目录,启动Tomcat自动解压即可访问。
    在这里插入图片描述

四、HTTP协议

4.1、HTTP协议通信流程

  • 客户与服务器建立连接(三次握手)
  • 客户向服务器发送请求
  • 服务器接收请求,并根据请求返回相应的文件作为应答
  • 客户与服务器关闭连接(四次挥手)
    在这里插入图片描述

4.2、请求报文和响应报文

4.2.1、请求报文

在这里插入图片描述

在这里插入图片描述

4.2.2、响应报文

在这里插入图片描述
在这里插入图片描述

4.2.3、常见状态码

在这里插入图片描述

  • 37
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值