Http协议和servlet简述

本文介绍了HTTP协议,包括请求和响应的数据结构,以及GET和POST的区别。深入讲解了Servlet的概念,它是运行在服务器上的Java程序,用于处理HTTP请求。文章还涵盖了Servlet的配置、执行流程、生命周期以及初始化。此外,讨论了Servlet的配置对象ServletConfig的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

  • 协议

双方在交互、通讯的时候,遵守的一种规范、规则。

  • http协议

针对网络上的客户端与服务器端在执行http请求时遵守的一种规范。
规定:
1、客户端在访问服务器端时要带上哪些东西
2、服务器返回数据的时候要带上什么东西

简介客户端和服务器端通讯

可安装抓包工具HttpWatch来实验了解。

http请求数据解析

http请求数据包括三部分:请求行、请求头、请求体

  • 请求行
    在这里插入图片描述
  • 请求头
    *在这里插入图片描述

*请求体
浏览器真正提交到服务器上的数据
在这里插入图片描述

Http响应数据解析

响应的数据里包含三部分:响应行、响应头、响应体

  • 响应行
    在这里插入图片描述
    *响应头
    在这里插入图片描述
    在这里插入图片描述
    *响应体
    实际返回的数据

get和post的区别

在这里插入图片描述

getpost
数据传输在地址栏拼接数据有安全隐患数据以流的方式写过去,安全
适用情况一般从服务器获取数据,并且客户端也不用提交上面的数据时用一般提交数据到服务器使用
数据长度仅可带1kb数据,有限无限制

web资源

在http协议中,规定了请求和响应双方,客户端与服务器端。与web相关的资源。

  • 静态资源
    html 、js、css
  • 动态资源
    servlet/jsp

servlet

实质是一个运行在web服务器上的java程序,用于接受和响应客户端的http请求,更多是配合动态资源来工作。

tomcat是servlet的容器,遇到请求挑拣合适的servlet处理。

注:访问静态web资源也需要用到servlet,不过是tomcat已经定义好的一个DefaultServlet。

配置servlet

在web工程的 WebContent – WEB-INF – web.xml中添加如下代码

   <!-- 向tomcat报告,当前应用有个Servlet,名为LoginServle,具体路径是mona.tuzhi.LoginServlet -->
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>mona.tuzhi.LoginServlet</servlet-class>
  </servlet>
  <!--  注册servlet映射,servlet-name同上,url-pattern是在地址栏的path(/开头) -->
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>

servlet执行过程

在这里插入图片描述

servlet继承体系

    servlet接口
		|
		|
   GenericServlet
(重写了init(),service(),destroy(),getServletConfig(),getServletInfo()等抽象方法)
        |
	    |
   HttpServlet(用于处理http的请求,service()中调用doget()或dopost())

servlet的通用写法

在这里插入图片描述

servlet的生命周期

在这里插入图片描述

  1. 初始化
    在这里插入图片描述
  2. 服务
    在这里插入图片描述
  3. 销毁 在这里插入图片描述

生命周期方法指从对象的创建到销毁一定会执行的方法。
doPost和doGet不算生命周期方法,不一定会执行。

servlet提前初始化
  • 原因:
    init()有时需要执行一些初始化工作,甚至是一些比较耗时的逻辑。为了减少初次访问时在init()方法逗留的时间,进行提前初始化。
  • 方法:
    在servlet配置文件中添加配置load-on-startup参数
 <servlet>
   <servlet-name>LoginServlet</servlet-name>
   <servlet-class>mona.tuzhi.LoginServlet</servlet-class>
   <!--数字从2开始,数字越小启动越早(1给了DefaultServlet)-->
   <load-on-startup>2</load-on-startup>
 </servlet>
 <servlet-mapping>
   <servlet-name>LoginServlet</servlet-name>
   <url-pattern>/LoginServlet</url-pattern>
 </servlet-mapping>

Servlet配置对象ServletConfig

可以用于获得servlet的参数配置信息
在这里插入图片描述
在这里插入图片描述

  • 用处:
    在开发中用到需要用到人家的代码,他的代码放在自己的servlet类中。而该servlet中需要不固定的参数值,要求引用者必须配置指定参数。
    在这里插入图片描述
  • 导入含servlet的jar包的步骤:
    1. 导入jar包。
    2. 在web.xml中注册servlet:路径写导入jar中类的全路径
    在这里插入图片描述 在这里插入图片描述
    3. 按提示添加参数 params

上述内容学习自黑马课程。

心得:脚步虽慢,但只进不退。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值