当前位置: 首页 > news >正文

Java_Servlet处理请求流程

1、servlet如何接收请求参数

从request对象中根据key获取value值

1)一个key对应一个value值

String value = request.getParameter("key");

2)一个key对应多个value值

String[] values = request.getParameterValues("key");

2、前端get请求和post请求方式

1>请求参数存放位置 get请求是将请求参数拼接在url请求地址后面, 会显示在浏览器地址栏中 格式:url?key1=value1&key2=value2... post请求将请求参数放在请求数据包的实体部分, 在浏览器地址栏中不会显示

2>安全性 get请求不安全 post请求相对安全

3>是否适合大数据量的提交 get不适合大数量的提交,每个不同的浏览器 对url的长度都有一定的限制 post请求适合大数量的提交,理论上对数据量 大小没有限制

4>get请求和post请求 get请求:

1)浏览器地址栏直接输入地址

2)点击页面上超链接

3)带有src属性的html标签,在页面加载时 会自动向src中服务器地址发送请求

4)表单的默认提交方式

5)ajax发送get请求 post请求

1)表单的method改为post

2)ajax发送post请求

3、中文乱码解决

1>post请求中文乱码 原因:前端浏览器按照UTF-8格式对字符进行编码, 到达服务器之后,服务器默认按照ISO-8859-1 方式来进行解码 解决:在request.getParameter()之前调用 request.setCharacterEncoding("UTF-8") 设置服务器端的解码方式

2>响应中文乱码 原因:服务器在返回中文时,默认按照ISO-8859-1 方式对中文进行编码,到达浏览器后,浏览器 按照utf-8方式进行解码 解决:在response.getWriter()之前调用 response.setContentType("text/html;charset=UTF-8") 告诉前端浏览器返回的数据类型和解码方式 mimetype:媒体类型格式 一般用于表示一个资源类型 格式:大类型/小类型 image/png image/jpg text/css

4、错误页面 <error-page> <!-- 错误状态码 --> <error-code>404</error-code> <!-- 错误页面 --> <location>/404.html</location> </error-page>

5、servlet执行原理

1>浏览器依据ip和端口号与服务器之间建立连接

2>浏览器打包请求数据包,发送给服务器

3>服务器接收并解析请求数据包,同时创建 request和response两个对象,并将请求数据包中 所有数据存入到request对象中

4>服务器再依据请求路径url和web.xml配置找到 或创建servlet对象(单例),并将事先创建的 request和response两个对象传入到servlet

5>servlet从request中取出请求数据并进行处理, 将处理结果存入到response对象中

6>服务器从response对象中取出处理结果,并打包 成响应数据包,给前端浏览器返回

7>浏览器和服务器之间断开连接

8>浏览器解析响应数据包,取出响应内容,并对 浏览器页面进行渲染

6、Http请求

1>Http协议概念 HyperText Transfer Protocal 超文本传输协议,是基于TCP之上的 应用层协议,主要用于规定浏览器与 服务器之间进行超文本传输的数据格式(数据包)

2>Http协议特点 短连接:Http会为浏览器的每一次请求 都建立一个连接,响应完成后连接断开, 下次请求需要重新建立连接,目的是为了 节省服务器端的资源,可以给更多的客户端 来提供服务 3>Http数据包

1)请求数据包

1>请求行 Request Line

1.1>请求方式(GET/POST)

1.2>请求路径(GET请求还包含请求参数)

1.3>请求协议类型与版本号 GET /web02/contact.html HTTP/1.1 GET /web02/contact?name=zhangsan&age=123&sex=M&province=shanxi HTTP/1.1 POST /web02/contact HTTP/1.1

2>请求消息头 Request Headers 主要定义浏览器与服务器之间的通讯规则, 浏览器想要告诉服务器的一些信息 消息头格式key:value 获取请求消息头:request.getHeader();

3>请求实体 Request Entity 包含浏览器向服务器提交的请求参数, 只有post请求有请求实体,get请求没有

2)响应数据包

1>响应行 Response Line

1.1>协议类型与版本号

1.2>响应状态码

1.3>状态码描述 HTTP/1.1 200 OK HTTP/1.1 404 Not Found HTTP/1.1 500 Internal Server Error 2>响应消息头 Response Headers 主要包含服务器想要告诉浏览器的一些相关信息 自定义消息头(下载或解决跨域): response.setHeader() 设置或覆盖消息头 response.addHeader() 设置或追加消息头

3>响应实体 Response Entity 服务器处理完结果,给浏览器返回的具体数据内容, 浏览器可以直接显示在页面上 ems员工管理系统

相关文章:

  • cadence SPB17.4 - allegro - modify shape
  • AJAX详细教程
  • 关于 在国产麒麟系统上使用QProcess配合管道命令执行shell命令获取预期结果输出失败 的解决方法
  • docker进阶——docker网络简解
  • 2022/09/01 day01:Git概述
  • 2022/09/02 day02:连接远程仓库,推送、克隆
  • 第18章linux系统-备份与恢复
  • 2022/09/03 day03:搭建私有git服务器与IDEA中使用Git
  • VScode+esp-idf:例程(esp32-web-camera)保存图片到sd卡
  • 读书笔记<高速上手C11 14 17>
  • Transformer,浅析归纳偏置对模型缩放的影响
  • 两款Java中小医院信息管理系统源码
  • CS:GO开服架设服务器搭建游戏配置方法教程教学插件配置下载资源配置
  • 微服务分布式架构中,如何实现优雅发版?
  • PCB电路设计规范细节
  • Akka系列(七):Actor持久化之Akka persistence
  • Android优雅地处理按钮重复点击
  • AWS实战 - 利用IAM对S3做访问控制
  • gitlab-ci配置详解(一)
  • HTTP 简介
  • Koa2 之文件上传下载
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • MySQL-事务管理(基础)
  • nodejs实现webservice问题总结
  • python_bomb----数据类型总结
  • React系列之 Redux 架构模式
  • Redux系列x:源码分析
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • TCP拥塞控制
  • Vue 动态创建 component
  • 从setTimeout-setInterval看JS线程
  • 构建工具 - 收藏集 - 掘金
  • 关于springcloud Gateway中的限流
  • 关于字符编码你应该知道的事情
  • 系统认识JavaScript正则表达式
  • 一个JAVA程序员成长之路分享
  • 一些关于Rust在2019年的思考
  • 【干货分享】dos命令大全
  • linux 淘宝开源监控工具tsar
  • #FPGA(基础知识)
  • $(selector).each()和$.each()的区别
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (windows2012共享文件夹和防火墙设置
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一) springboot详细介绍
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)人的集合论——移山之道
  • .NET6实现破解Modbus poll点表配置文件
  • .Net6使用WebSocket与前端进行通信