Request简单介绍
1、request原理
requst对象是由服务器创建的,是来获取请求消息的,而response是来设置响应消息的
2、request对象继承体系结构
ServletRequest (接口)
| 继承
HttpServletRequest (接口)
| 实现
org.apache.catalina.connector.RequestFacade 类(tomcat)
3、request功能
3.1获取请求消息数据
3.1.1获取请求行数据
GET /day/demo?name=zhangsan HTTP/1.1(下面的方法有具体解释)
方法:
①获取请求方式 :GET
String getMethod()
②获取虚拟目录:/day
String getContextPath()
③获取Servlet路径: /demo
String getServletPath()
④获取get方式请求参数:name=zhangsan
String getQueryString()
⑤获取请求URI:/day/demo
String getRequestURI(): /day/demo
StringBuffer getRequestURL() :http://localhost/day/demo
* URL:统一资源定位符 : http://localhost/day/demo 中华人民共和国
* URI:统一资源标识符 : /day/demo 共和国
⑥获取协议及版本:HTTP/1.1
String getProtocol()
⑦ 获取客户机的IP地址:
String getRemoteAddr()
3.1.2获取请求头数据
方法:
String getHeader(String name):通过请求头的名称获取请求头的值
Enumeration<String> getHeaderNames():获取所有的请求头名称
3.1.3获取请求体数据
请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数
步骤:
①获取流对象
* BufferedReader getReader():获取字符输入流,只能操作字符数据
* ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据
②再从流对象中拿数据
3.2其他功能
3.2.1获取请求参数通用方式
不论get还是post请求方式都可以使用下列方法来获取请求参数
① String getParameter(String name):根据参数名称获取参数值 username=qwer&password=123456
②String[] getParameterValues(String name):根据参数名称获取参数值的数组 hobby=xx&hobby=game
③Enumeration<String> getParameterNames():获取所有请求的参数名称
④Map<String,String[]> getParameterMap():获取所有参数的map集合
3.2.2请求转发:一种在服务器内部的资源跳转方式
(一)步骤
①通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
②使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
(二)特点
①浏览器地址栏路径不发生变化
②只能转发到当前服务器内部资源中。
③转发是一次请求
(三)共享数据
☆ 域对象:一个有作用范围的对象,可以在范围内共享数据
☆ request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
☆ 方法:
1. void setAttribute(String name,Object obj):存储数据
2. Object getAttitude(String name):通过键获取值
3. void removeAttribute(String name):通过键移除键值对
(四)获取ServletContext
☆ServletContext getServletContext()
Request简单介绍相关推荐
- django中使用celery简单介绍
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 本章节我们重点在于实现,如何存储任务的结果. 我们将任务函数改为: from celery_demo.celery im ...
- IOS学习之 网络编程(10)--简单介绍ASI框架的使用
转载自 http://www.cnblogs.com/wendingding/p/3950027.html 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是A ...
- gitee合并分支_使用Gitee进行协作翻译的简单介绍
协作翻译的Gitee使用介绍 由于Github国内访问不稳定,加之大部分同学应该都在国内,所以我使用了Gitee进行协作.(github的操作也是完全一样的) 很多同学说不知道怎么创建分支,也不知道怎 ...
- Django - Django框架 简单介绍
Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...
- CAS单点登录原理简单介绍
1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...
- REST API 概念的简单介绍
REST API 概念的简单介绍 最近发现很多人不了解REST是什么,我综合了下网上的文章,摘录了一下. 首先要明确一点:REST(Representational State Transfer,表述 ...
- java过滤器应用实例_Servlet过滤器Filter的简单介绍(附示例)
本篇文章给大家带来的内容是关于Servlet过滤器Filter的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 特点 1)Filter是依赖于Servlet容器,属 ...
- ASIHTTPRequest类库的简单介绍
1.概述 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Obje ...
- adblockplus简单介绍
adblockplus简单介绍 官方源码:https://github.com/adblockplus/adblockpluscore 官网:https://adblockplus.org/ adbl ...
最新文章
- linux nat 日志,IPtables日志管理 (记录NAT信息)
- EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)
- java将图片铺满panel_如何让添加的背景图片铺满整个JFrame?
- 程序员如何帮助公司快速上市、获得分红?
- 128.3. Example 配置实例
- 广义表取表头表尾_数据结构广义表的递归算法
- 使用Sqlite数据库存储数据
- CF1039E Summer Oenothera Exhibition
- java微信聊天机器人源码_三步轻松打造微信聊天机器人(附源码)
- CODESYS Softmotion(一)功能介绍
- linux的帮助,帮助信息_Linux公社 - Linux系统门户网站
- 北京科技计算机类好不好,北京信息科技大学怎么样 在全国排名多少好不好
- 俄语计算机考研,研友分享:俄语考研91分的经验体会
- 个人学习之C++ 头文件.h与.cpp
- C#批量剪切视频文件
- 抖音直播各类话术?开场、留人、促单互动话术合集
- SAF(Storage Access Framework)使用攻略
- 根据身份证号码来提取人员的信息【身份证号码的前六位所代表的省,市,区, 以及地区编码】的网上地址
- 【源码】基于传热实验的管壳式、双管式、三叉流式换热器
- matlab:神经网络分类预测鸢尾花(iris)
热门文章
- 超分辨率重建经典方法——Super-Resolution Through Neighbor Embedding
- Vue3 企业级项目实战
- 夹缝时代,书的阅读与未来
- Word控件Spire.Doc 【页面设置】教程(5) 如何在 C# 中删除分页符
- 跟踪报道:中国国际数字城市建设技术与设备博览会(简报)
- PPT基础(二十九)添加备注和批注
- ht城市介绍人口数量Html,城市人口比例-雅思写作柱状图bar chart-雅思小作文范文 population living in urban areas...
- 原语科技正式推出隐私计算开源平台Primihub!
- 惠普暗影精灵 8 台式机 评测
- 计算机检索逻辑关系,计算机检索技术 ppt课件.ppt