HttpServletRequest 常用方法讲解

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,

从客户端取数据找HttpServletRequest,向客户端发送数据找HttpServletResponse。

 

HTTP 协议是基于请求-响应的协议,客户端请求一个文件,服务器对该请求进行响应。

HTTP 使用 TCP 协议,默认使用 80 端口。最初的 HTTP 协议版本是 HTTP/0.9,后被 HTTP/1.0 替代。目前使用的版本是 HTTP/1.1,

在 HTTP 协议中,总是由主动建立连接、发送 HTTP 请求的客户端来初始化一个事务。

服务器不负责连接客户端,或创建一个到客户端的回调连接(callback connection)。

 

 

HttpServletRequest 

  公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。

所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的IP,甚至客户端操作系统都包含在其内。

 

一个 HTTP 请求包含以下三部分:

a.请求地址(URL)

b.请求头(Request headers)

c.实体数据(Entity body)

 

  每个 HTTP 请求都会有一个请求方法,HTTP1.1 中支持的方法包括,GET、POST、HEAD、OPTIONS、PUT、DELETE 和 TRACE。

互联网应用中最常用的是 GET 和 POST。

  URI 指明了请求资源的地址,通常是从网站根目录开始计算的一个相对路径,因此它总是以斜线 “/”开头的。

URL 实际上是 URI 的一种类型,请求头(header)中包含了一些关于客户端环境和请求实体(entity)的有用的信息。

例如,客户端浏览器所使用的语言,请求实体信息的长度等。每个请求头使用 CRLF(回车换行符,“\r\n”)分隔。

注意请求头的格式:请求头名+英文空格+请求头值。

 

常用方法

1.获得客户机信息

getRequestURL方法返回客户端发出请求时的完整URL。

getRequestURI方法返回请求行中的资源名部分。

getQueryString 方法返回请求行中的参数部分。

getRemoteAddr方法返回发出请求的客户机的IP地址

getRemoteHost方法返回发出请求的客户机的完整主机名

getRemotePort方法返回客户机所使用的网络端口号

getLocalAddr方法返回WEB服务器的IP地址。

getLocalName方法返回WEB服务器的主机名

getMethod得到客户机请求方式

getServerPath()获取请求的文件的路径

 

 2.获得客户机请求头

getHeader(string name)方法 
getHeaders(String name)方法 
getHeaderNames方法 

 

 3. 获得客户机请求参数(客户端提交的数据)
getParameter(name)方法 获取请求中的参数,该参数是由name指定的
getParameterValues(String name)方法 获取指定名称参数的所有值数组。

它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。

 

getParameterNames方法 返回一个包含请求消息中的所有参数名的Enumeration对象。

通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名。

 

getCharacterEncoding() 返回请求的字符编码方式

getAttributeNames()返回当前请求的所有属性的名字集合赋值:setAttribute()

getAttribute(String name) 返回name指定的属性值

getsession()返回和客户端相关的session,如果没有给客户端分配session,则返回null

getParameterMap():返回一个保存了请求消息中的所有参数名和值的Map对象。

Map对象的key是字符串类型的参数名,value是这个参数所对应的Object类型的值数组。

 

RequestDispatcher.forward 方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。

 

request.setCharacterEncoding("utf-8");

getReader() 获取请求体的数据流。

getInputStream() 获取请求的输入流中的数据。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

object中的toString方法

任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法。toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动调用toString()方法&#xff0…

东网科技荣膺2016中国大数据最佳实践奖

11月24日,由中国软件网主办的数据趴活动圆满落幕,活动现场隆重揭晓了大数据领域的重磅榜单,旨在对大数据领域中表现突出的企业、人物进行表彰。东网科技有限公司(以下简称“东网科技”)凭借大数据运营支撑平台及在环保、烟草、教育、政府等行…

Apache Subversion 1.7.2发布,开源版本控制工具

SVN(Subversion)已经发布了1.7的第二个维护版本。 Apache Subversion是一个开放源码、多用户的版本控制系统,支持非 ASCII 文本和二进制数据,支持可在本地访问或通过网络访问的数据库和文件系统存储库。相对于传统的RCS、CVS&…

react生命周期

1、初始化getDefaultProps()设置默认的props,也可以用dufaultProps设置组件的默认属性。 getInitialState()在使用es6的class语法时是没有这个钩子函数的,可以直接在constructor中定义this.state。此时可以访问this.propscomponentWillMount()在组件初始…

14--用两个栈实现队列

文章目录1.题目详情2.解题代码1.题目详情 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例…

浅谈爬虫 《一》 ===python

浅谈爬虫 《一》 python ‘’正文之前先啰嗦一下,准确来说,在下还只是一个刚入门IT世界的菜鸟,工作近两年了,之前做前端的时候就想写博客来着,现在都转做python了,如果还不开始写点什么,估计时间…

Servlet全面讲解

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。Servlet 是在服务器上运行的…

你的代码可以是优雅的,但是还有更重要的

引用软件设计有两种方法:一种是尽可能地简单,这种设计明显没有什么缺陷;另一种是尽可能地复杂,这种设计没有明显的缺陷。 ——C.A.R. Hoare,1980年图灵奖讲座在开发过程中,我的口头禅是: Your c…

15--0~n-1中缺失的数字

文章目录1. 问题描述2. 解题代码1. 问题描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,…

如何在README中使用图片

将图片放在仓库里面,在文件里链接它,最后 push 到 github 上。 github 图片链接格式: (http://github.com/yourname/your-repository/raw/master/images-folder/xxx.png) 要自己设定的:yourname, your-repository, your-folder…

Unity中传入任意数,转换成分,秒,并进行倒计时换算..(两种方式)

第一种方式是利用Unity中的协程,代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class DemoTest : MonoBehaviour {public Text text;//测试用的数字public int MyTime 60;void Start (){//开启协程…

内核编程小结(引用)

https://www.cnblogs.com/fanling999/p/4509785.html转载于:https://www.cnblogs.com/endenvor/p/9006507.html

JIRA 5.0.1 发布

Atlassian公司发布了JIRA 5.0.1版本,该版本相比JIRA 5.0有更多改进功能。1. 管理界面的改进 将更多页面管理转为对话框形式。例如点击页面右上方的“Add New”就可实现新增issue types、sub-tasks、field configurations 、screens。2. 性能改进 解决了基于Lucene 3…

java开启新线程的三种方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 方式1:继承Thread类 步骤: 1):定义一个类A继承于Java.lang.Thread类. 2):在A类中覆盖Thread类中的run方法. 3):我们在ru…

16 --删除排序数组中的重复项

文章目录1.问题描述2.代码实现1.问题描述 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的…

jquery评分效果Rating精华版

参考:https://blog.csdn.net/bluceyoung/article/details/8573629转载于:https://www.cnblogs.com/yingyigongzi/p/9400489.html

NVIDIA助力SiemensPLMSoftware“工业4.0创新实验室”,携手推进中国制造创新之路

今日,NVIDIA宣布为SiemensPLMSoftware在北京建成的“工业4.0创新实验室”提供了支持。该实验室配备SiemensPLMSoftware全面的产品生命周期管理解决方案,结合第三方硬件,向中国制造企业展示“数字化企业”的全景图。实验室的工作站全部配备NVI…

java中的native方法

一. 什么是Native Method简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制&a…

17--合并两个有序数组

文章目录1.问题描述2.代码实现1.问题描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间(空间…

Maven 添加本地 jar 包、添加依赖 jar 文件到本地 Maven 仓库、引用本地 jar

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 把要用的jar放在固定位置: 2.打开CMD,进入到libs文件夹: 3.运行如下命令: mvn install:install-…