什么是servlet?servlet有什么用?

2023-11-18

servlet概述

什么是servlet,servlet有什么用?

servlet是java编写的服务器端的程序,运行在web服务器中

作用:

  1. 接收用户端发来的请求
  2. 调用其他java程序来处理请求
  3. 将处理结果,返回到服务器中

servlet的生命周期

实例化-初始化-服务-消亡

1.第一次访问servlet或启动服务器时创建servlet 的实例

2.init() 只调用一次,servlet实例创建后立即执行,用于执行一些servlet初始化操作

@Override
    public void init() throws ServletException {
        super.init();
    }

3.service方法 多次调用;每次请求都调用service方法,根据请求方式调用doGet()或doPost()方法。

@Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        super.service(req, res);
    }

4.只调用一次,服务器关闭时,执行一些操作

@Override
    public void destroy() {
        super.destroy();
    }

http协议

http协议 超文本传输协议, 用于定义客户端浏览器和服务器之间交换数据的过程,基于TCP/IP通信协议来传输数据;属于应用层(简洁快速,适用于分布式超媒体信息系统)

http请求

客户端连接上服务器后,向服务器端请求了web资源,就是向服务器端发送了http请求

请求包括:

  1. 请求行:包括http请求方式,请求资源名称,请求版本

  2. 请求头:主机请求地址,客户端环境信息,以键值对形式传递

    Host: 127.0.0.1:8088     请求的主机地址
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 浏览器能够处理的内容类型
    Accept-Encoding: gzip, deflate, br     浏览器能够处理的压缩编码
    Accept-Language: zh-CN,zh;q=0.9     浏览器当前设置的语言
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36   使用的浏览器和操作平台信息
    Connection: keep-alive    浏览器与服务器之间连接的类型
    
  3. 请求体:代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递,多个用&链接,服务器接收到后再解析 例如:username=admin&userpwd=123

两种http请求方式

  1. get方式

    超链接访问,默认为get请求

    form提交,不指定method,默认为get方式

  2. post方式

    form提交,指定method=post

两种的方式的区别

  1. get请求主要从服务器获取信息;post主要是是向服务提交的信息
  2. get请求在通过URL提交数据,数据在URL可以看到;post请求放置在请求体中提交
  3. get请求提交的数据大小受限制一般1kb(不同浏览器可能不同);post请求不受限制

HttpServletRequst

是ServletRequest的子接口;比ServletRequest多了一些针对http协议的方法;在Servlet中,用HttpServletRequest来表示请求;HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息。

HttpServletRequst的一些方法

  1. getMethod()得到客户机请求方式
  2. getScheme()请求协议
  3. getRemoteAddr()返回发出请求的客户机的IP地址
  4. getServerName()服务器名(ip或域名)
  5. getServerPort()服务器端口

获取请求的参数的方法

  1. getParameter(name) — String 通过name获得值
  2. getParameterValues — String[ ] 通过name获得多值

http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。

状态码:

  1. 200:请求成功
  2. 302:请求重定向
  3. 400:语义有误,当前请求无法被服务器理解或请求参数有误
  4. 404:请求资源不存在,通常是路径写错了或者服务器资源删除了
  5. 500:服务内部错误(代码异常)

HttpServletResponse

HttpServletResponse是ServletResponse的子接口 。

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个代表响应的HttpServletResponse对象。HttpServletResponse对象代表响应

向浏览器动态生成网页内容

​ 用getWriter()获得一个PrintWriter字符输出流输出数据response会默认以ISO8859-1将需要输出到浏览器的字符进行解码,如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

​ response.setContetnType(“text/html;charset=utf-8”);方法可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码

创作不易,大佬们留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是servlet?servlet有什么用? 的相关文章

随机推荐

  • 【网络编程】学习成果day1(理论)

    1 联合体实现判断大小端存储 linux linux study NETbc cat homework1 c include
  • kali2.0 Metasploit连接postgres数据库

    sudo u postgres createuser demo P 创建用户demo sudo u postgres psql 进入数据库 postgres password demo 设置密码 sudo u postgres create
  • CK-GW06-E00与CODESYS TCP通信

    CK GW06 E00与CODESYS TCP通信 CK GW06 E00是一款支持标准工业通讯协议Modbus TCP的网关控制器 方便用户集成 到 PLC 等控制系统中 本控制器提供了网络 POE 供电和直流电源供电两种方式 确保用 户
  • 计数排序动漫与代码

    前言 从复杂度较高的 冒泡排序 选择排序 插入排序 不包含二分插入排序 这些时间复杂度为 O N 2 的排序 再到归并排序 快速排序 堆排序 这些时间复杂度为 O nlogn 的排序 还有么有更快的 答有 它来了它来了 它带着一波动画共计1
  • 解决keil中 点击setting 程序中断问题

    自己写了一个LED常亮的程序 入门嘛 但是程序在下载后 点击 debug setting 在软件识别J link后 程序是成功的 但是LED不亮了 下面是解决方法 记住把2标记处的对勾去掉就可以了 这个功能是 在你连接完成时自动在Reset
  • linux怎样重启网卡,linux系统重启网卡的方法步骤详解

    在实际工作中 经常会遇到Linux系统进行重启网卡的操作 接下来是小编为大家收集的linux系统重启网卡方法 希望能帮到大家 linux系统重启网卡方法 一 service network restart 1 首先用CRT工具连接到Linu
  • GPT-4更新了哪些功能-GPT-4 Plus申请流程

    GPT 4相比GPT3有哪些更新 以下是对GPT 4的优势的详解 1 更强大的语言生成能力 GPT 4将有望比其前身 GPT 3模型生成更精准 更准确 更自然的文本 同时在更短的时间内完成 2 更高的文本理解能力 随着深度学习的技术进步 G
  • Ubuntu操作系统学习笔记之文件系统挂载管理

    概念 在磁盘或分区上创建好的文件系统 需要挂载到一个目录才能使用 windows和Mac会进行自动挂载 即文件系统一创建好就自动挂载到系统上 挂载到windows上的文件系统称之为 C盘 D盘 E盘 等 Linux需要手动进行挂载操作 或者
  • Typora图片路径问题之相对路径前没有点斜杠

    一 背景 在使用typora时 复制一张图片显示的路径前面没有点斜杠 二 遇到的问题 如图所示 原因 typora偏低版本还没有自动在前面加点斜杠的功能 三 解决方法 升级最新版本 效果如图 1 4 3 新增功能 添加选项以在为图像生成相对
  • lua 源码阅读 1.1 -> 2.1

    lua 1 1 阅读1 hash c 中 a 对建立的 Hash array 用 listhead 链式结构来管理 新增lua hashcollector 用来做 Hash 的回收处理 ps 1 0 用的是个 512 的数组 用一个少一个
  • 关于Qt::BlockingQueuedConnection非死锁的程序卡住

    Qt BlockingQueuedConnection如果sender和receiver运行于同一线程 会报错 Qt Dead lock detected while activating a BlockingQueuedConnectio
  • 网络化,元宇宙的门槛

    如果森林中的一棵树倒下 但周围没有人听到 那它是否会发出声音 这一思想实验可以追溯到数百年前 这个实验之所以经久不衰 部分原因是它很有趣 而它之所以很有趣 是因为它耐人寻味并且融人了哲思 人们通常认为 上面这个问题最初是由主观唯心主义哲学家
  • 【自动化测试】如何在jenkins中搭建allure

    相信大家在做自动化测试过程中 都会用到自动化测试环境 目前最常见的就是通过容器化方式部署自动化测试环境 但对于一些测试小白 不是很会搭建持续集成环境 特别是从0 1的过程 需要自行搭建很多依赖环境 今天就给大家介绍一下如何在jenkins搭
  • 小程序开发-Now you can provide attr "wx:key" for a "wx:for" to improve performance

    当我们开发微信小程序用到 wx for 时可能会在控制台报 Now you can provide attr wx key for a wx for to improve performance 警告 不要慌张这只是警告不妨碍运行 消除警告
  • html 常用知识点

    段落 h3 登黄鹤楼 h3 p 白日依山尽 p p 黄河入海流 p 跳转页面 a href http www daidu com target blank title 欢迎登陆 a href 链接的地址 target 打开页面的方式 tit
  • do while(0)的妙用

    do while 0 的妙用 do while 0 就如同一个花括号 具有独立的作用域 花括号所表示的符合语句是一个整体 do while 语句同样是一个整体 同样可以在if 等条件语句后直接使用 但是后所不同的是 do while 作为循
  • Mac 解决 command not found: mysql

    首先检查下面的目录中是否有mysql命令 cd usr local mysql bin 如果有的话 使用 echo export PATH PATH usr local mysql bin gt gt zshrc 即可解决 参考链接 htt
  • Ubuntu关闭无用服务

    linux的各大发行版 都有些不必要的服务被默认开启了 针对ubuntu 我们可以采用选择性关闭的方法加速起动 提高系统性能 这里我们安装一个软件 sudo apt get install sysv rc conf 然后这样起动 sudo
  • 力扣动态规划专题(一)背包理论基础 基础动规题 动规注意点 步骤及C++实现

    文章目录 动态规划 509 斐波那契数 五步骤 代码 70 爬楼梯 五步骤 代码 746 使用最小花费爬楼梯 五步骤 代码 扩展 62 不同路径 动态规划 数论 63 不同路径 II 五步骤 代码 343 整数拆分 五步骤 代码 96 不同
  • 什么是servlet?servlet有什么用?

    servlet概述 什么是servlet servlet有什么用 servlet是java编写的服务器端的程序 运行在web服务器中 作用 接收用户端发来的请求 调用其他java程序来处理请求 将处理结果 返回到服务器中 servlet的生