servlet技术笔记

servlet技术

1.什么是servlet

  1. Servlet是javaEE规范之一。规范就是接口

  2. javaweb三大组件:Servlet程序、Filter过滤器、Listener监听器。

  3. Servlet是运行在服务器上的一个java小程序,

  4. 作用:接受客户端请求,响应数据给客户端

2.手动实现Servlet程序

  1. 编写一个类实现servlet接口
  2. 实现service方法,处理请求,响应数据
  3. 到web.xml配置和

3.servlet访问原理

image-20210512175853466

4.Servlet的生命周期

  1. 执行Servlet构造器方法
  2. 执行init初始化方法
  3. 执行service方法
  4. 执行destroy销毁方法

第一二步是第一次访问,第三步每次访问都会调用,第四步在web工程停止的时候调用。

5.GET POST,请求的分发处理

if("GET".equals(method)){
        doget();
    }else if("POST".equals(method)){
        dopost();
    }
}
public void doget(){
    System.out.println("getgetget");
}
public void dopost(){
    System.out.println("postpost");
}

6. 通过继承HttpServlet实现Servlet程序

一般在实际项目开发中,用这个方法

  1. 编写一个类去继承HttpServlet类
  2. 根据业务需要重写doGet或者doPost方法
  3. 到web.xml中的配置Servlet程序的访问地址

7.Servlet类的继承体系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lKSw2hTU-1622793551733)(C:\Users\11462\AppData\Roaming\Typora\typora-user-images\image-20210512200710002.png)]

8.ServletConfig类使用介绍

init(ServletConfig servletConfig) ,ServletConfig一般是在init中。

  1. servletConfig.getServletName(),获取程序别名
  2. 获取初始化参数

首先需要在xml做好初始化参数的配置,然后调用servletConfig.getInitParameter(“parm-name”)

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.servlet.HelloServlet</servlet-class>
    <init-param>
        <param-name>username</param-name>
        <param-value>root</param-value>
    </init-param>
    <init-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:3306/test</param-value>
    </init-param>
</servlet>


System.out.println("初始化参数username:"+servletConfig.getInitParameter("username"));
System.out.println("url:"+servletConfig.getInitParameter("url"));
  1. 获取servletcontext对象,servletConfig.getServletContext()
    

输出信息:org.apache.catalina.core.ApplicationContextFacade@7453b2eb

  1. ServletConfig是Servlet程序的配置信息类

servlet程序和servletconfig对象都是由Tomcat负责创建,我们负责使用。

servlet程序默认是第一次访问的时候创建,servletconfig是meigeservlet程序创建是,就创建一个对应的servletconfig,传给init方法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uga7cy3R-1622793551734)(C:\Users\11462\AppData\Roaming\Typora\typora-user-images\image-20210512232340036.png)]

9.ServletContext:接口

  1. ServletContext是一个接口,它表示Servlet上下文对象
  2. 一个web工程,只有一个ServletContext单例对象实例。
  3. servletcontext对象是一个域对象
  4. sevletcontext是在web工程部署启动的时候创建,在web工程停止的时候销毁

域对象,是可以像Map一样存取数据的对象,域治可以存取数据的操作范围,整个web工程

​ 存数据 取数据 删除数据

Map put() get() remove()

域对象 setAttribute() getAttribute() removeAttribute()

ServletContext类的四个作用

  1. 获取web.xml配置的上下文参数
  2. 获取当前工程路径
  3. 获取绝对路径
  4. 像map一样存取数据

4.Http协议

a)什么是协议

协议是指双方或多方相互约定好,共同遵守的规则。

http协议是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则。

HTTP协议中的数据叫做报文

b)请求的HTTP协议格式

请求:客户端给服务器发送数据

响应:服务器给客户端回传数据

请求又分为GET请求,和POST请求

i.get请求
  1. 请求行

    1. 请求的方式 get
    2. 请求的资源路径【+?+请求参数】
    3. 请求的协议的版本号 http、1.1
  2. 请求头

    1. key:value 组成 不同的键值对,表示不同的含义。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5iHU8iRQ-1622793551735)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210514153417226.png)]

ii.POST请求
  1. 请求行

    1. 请求的方式 POST
    2. 请求的资源路径【+?+请求参数】
    3. 请求的协议的版本号 http、1.1
  2. 请求头

    1. key:value 组成 不同的键值对,表示不同的含义。

    空行

  3. 请求体==>>发送给服务器的数据

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6hntpWJP-1622793551736)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210514154908486.png)]

iii.常用请求头的说明

Accept: 表示客户端可以接受的数据类型

Accept-Langue:表示客户端可以接收的语言类型

User-Agent: 表示客户端浏览器的信息

Host: 表示请求时的服务器ip和端口号

iv.哪些是get请求,哪些是post请求

GET:

  1. method = get
  2. a标签
  3. link标签引入css
  4. Script标签引入js文件
  5. img标签引入图片
  6. iframe引入html页面
  7. 在浏览器地址栏中输入地址后敲回车

POST:

  1. form 标签 method=post
响应的HTTP协议格式
  1. 响应行

    1. 响应的协议和版本号
    2. 响应状态码
    3. 响应状态描述符
  2. 响应头

    响应头表示服务器的信息

  3. 响应体,回传给客户端的数据

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yI6AqEjp-1622793551737)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210514190718049.png)]

d)常用的响应码说明

200 表示请求成功

302 表示请求重定向

404 服务器已经收到了,但是请求地址不存在

500 服务器已经收到请求,但是服务器内部代码错误

e)MIME类型说明

MIME是HTTP协议中数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X4BcwlTv-1622793551738)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210514192536437.png)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值