第四章Servlet处理HTTP请求

本文详细介绍了Servlet如何处理HTTP请求,包括GET/POST方法、HTTP请求方法与HttpServlet的映射、请求行和消息体的获取,以及请求转发和范围的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

servlet接受服务器请求信息

	客户端的HTTP请求通过HttpServletRequest对象代表
	主要用于获取由客服端发送过来的请求头,参数,文件,数据等
	Servlet规范中对此对象进行增强,使其还可以与web应用程序互交
	servlet存在的真正任务接受处理请求

GET/POST提交方法

	浏览器都会向web服务器发送HTTP请求
		用户在网页上点击一个超链接
		用户提交在网页上填写号的表单
		用户在浏览器地址栏中输入URL地址并回车

特征

		GET方法
			提交数据类型
				文本
			提交数据长度
				不超过255个字符
			提交数据可见性
				作为URL地址的一部分显示在浏览器地址栏
			提交数据缓存
				缓存在浏览器URL历史状态中
				
		POST方法
			提交数据类型
				文本,二进制文本
			提交数据长度
				没有限制
			提交数据可见性
				作为请求的消息体,不可见
			提交数据缓存
				不会被浏览器缓存

HTTP请求方法与HttpServlet方法对应关系

		HTTP请求方法类型
			有7种,其中两种常用
			GET
			POST
		HttpServlet处理方法
			doGet
			doPOST

获取HTTP协议请求行

	访问请求行信息的方法
		getMethod()
			获取GET、POST等
		getRequestURI()
			获取请求的URI资源
		getRequestURL()
			获取请求的URL,包含协议名,服务器名或IP、端口好和请求资源但不包括查询字符串参数
		getQueryString()
			获取请求URL后面的查询字符串
		getProtocol()
			获取HTTP的协议名和版本号
		getContextPath()
			获取请求URI资源的上下文路径,总是以“/”开头
		getServletPath()
			获取Servlet的映射路径
获取HTTP协议请求头
	getHeader(java.lang.String name)
		返回指定的请求头的值
	getHeaders(java.lang.String name)
		大多数情况下,每个请求头的名称只在请求中出现一次。但是偶然情况下也可以出现多次
	getIntHeader(java.lang.String name)
		获取特定请求头的值,并将其转化为int类型。如果请求头不存在该方法返回1,如果不能转化为整性,抛出NumberFormatException异常
	getHeaderNamcs()
		不用查询特定的HTTP请求头,该方法获得一个Enumeration包含特定请求中接受到所有请求头的名称
	getDateHeader(java.lang.String name)
		获取特定请求头的值,转化为Date类型,HTTP请求头对于判断所有请求信息的种类来说非常有用

获取请求消息体

	HttpServletRequest对象可以访问HTTP请求行、获取浏览器设置的请求头
	HttpServletRequest对象还可以获取HTTP请求的消息体
	消息体可以是普通文本也可以是二进制数据获取表单数据
	getParameter(java.lang.String parameterName)
		获取表单参数的值,参数名区分大小写,与HTML表单中出现的参数名一致
	getParameterValues(java.lang.String parameterName)
		获取同一个参数名的多个参数值,返回字符串数组对象
	getParameterNames()
		以Enumeration(枚举)的方式返回请求中所有的表单参数名列表。和ShowHeaders Servlet一样,可以用Servlet来读取和显示所有的请求参数
请求转发和请求范围
	请求转发跟重定向不一样,请求转发只会请求一次,返回一次响应
	传递给很多Servlet以及Web应用程序中其他资源,整个过程完全是在服务器端完成的

请求转发

		getRequestDispatcher(java.lang.String path)
			getRequestDispatcher()方法返回给定路径的RequestDispatcher对象
		getNamedDispatcher(java.lang.String name)
			getNamedDispatcher()方法返回某个名称的Servlet的RequestDispatcher对象
		forward(javax.servlet.ServletRequest,javax.servlet.ServletResponse)
			forward()方法派发请求和响应对象到RequestDispatcher 对象所确定的新资源

请求范围

		两个或多个Servlet请求之间传输对象的方法,在这之外的对象就会被回收
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值